Click on one link in geckoWebBrowser in C# - c#

I want to click on one link in one page.
Here is my code:
private void Button1_Click(object sender, EventArgs e)//GO
{
if (!Xpcom.IsInitialized) Xpcom.Initialize("Firefox");
geckoWebBrowser1.Navigate("http://www.tsetmc.com/loader.aspx?ParTree=151311&i=67126881188552864");
}
And I want to click on a link:
حقیقی-حقوقی
can anybody help me?
thanks.

I just looked up a Gecko project where I was clicking on the link and while the following might not be the most elegant way the same technique should work for you:
private void geckoWebBrowser1_DocumentCompleted(object sender, EventArgs e)
{
var elements = geckoWebBrowser1.Document.GetElementsByTagName("a");
foreach (GeckoHtmlElement element in elements)
{
if (element.ClassName == "violet")
{
element.ScrollIntoView(false);
element.Click();
}
}
}
I don't think the ScrollIntoView call is actually required, I just did that because it was an animated button and I wanted to see it was working. But you will need to wait until the document has loaded before clicking so I've put it in the DocumentCompleted event so before the Navigate don't forget to add:
geckoWebBrowser1.DocumentCompleted += geckoWebBrowser1_DocumentCompleted;

Related

How to switch tabs with button in a TabControl?

I've watched a few tutorials online on how to change tabs using buttons but for some reason all the code I've tried doesn't work. I am currently running Microsoft Visual Studio 2017 and am trying to write some code for a button to change tabs.
I couldn't find any differences between my code and code shown in tutorials, so it may just be a Visual Studio setting that I haven't set up correctly to allow the button correctly, but I couldn't figure out if or where it may be.
Here's my current code:
//Element event handlers
public Form1()
{
InitializeComponent();
}
private void buttonStart_Click(object sender, EventArgs e)
{
tabControl.SelectedTab = DestSelect;
}
private void buttonGotoIntro_Click(object sender, EventArgs e)
{
tabControl.SelectedTab = Intro;
}
//An old computer-generated segment code for the previous button.
//When I try to remove it the computer gets mad at me.
private void GotoIntro_Click(object sender, EventArgs e)
{
}
Please confirm you have subscribed to the Click event for the buttons.
public Form1()
{
InitializeComponent();
buttonStart.Click += buttonStart_Click;
buttonGotoIntro.Click += buttonGotoIntro_Click;
}
Instead of 'tabControl.SelectedTab = DestSelect;" try instead the method 'tabControl.SelectTab(DestSelect);'
I read through this article to find your (hopefully) answer:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/2cf22896-c5bd-4a9b-ab61-34404b55ef01/how-to-jump-to-a-specific-tab-in-the-tabcontrol?forum=vbgeneral
I assume u want to select a tab when a different Button is clicked.
tabControl.SelectedIndex = [Index of tab to switch to];
Code should look like;
tabControl.SelectedIndex = feeTabIndex;
If this is not clear enough, tell me exactly what you want to do.

prevent right click in wpf browser

I want to work with the WPF WebBrowser but the user can press right click to open new tabs e.g. I know that I need to disable the contextmenu but I only find solutions for the WinForms Webbrowser.
This is what I've tried: webBrowser.ContextMenu.IsEnabled = false
hope you can help
This is how I solved it a while ago in WPF (got this code from another answer but I dont have the link for the question):
//Declare
private HTMLDocumentEvents2_Event documentEvents;
//Navigate to a Webpage and create a Eventhandler for LoadCompleted
webBrowser.Navigate(HTML);
webBrowser.LoadCompleted += webBrowser_LoadCompleted;
private void webBrowser_LoadCompleted(object sender, NavigationEventArgs e)
{
documentEvents = (HTMLDocumentEvents2_Event)webBrowser.Document;
documentEvents.oncontextmenu += webBrowser_ContextMenuOpening;
}
private bool webBrowser_ContextMenuOpening(IHTMLEventObj pEvtObj)
{
return false;
}

C# Windows form new page

I'm trying to make a button on my windows form create a new page when clicked, something like when you are going through an installation of a program and you would click "Next" and it would take you to a new page but not bring up an entirely seperate window. I would also have another button that would be pressed to bring up the original form.
I've looked everywhere for a answer to this so any help on how I would create this would be greatly appreciated.
private void Cleaning_Click(object sender, EventArgs e)
{
// executes new page
}
What you want to do is to create a wizard. There are lot of samples on internet regarding that. Take a look;
http://www.codeproject.com/Articles/31770/Wizard-Form-Implementation
Or
You can see that SO question
Creating Wizards for Windows Forms in C#
One simple way is to use panels in a single form. The only problem with panels is that it is hard to edit the layout and also your code would become very messy.
it IS simple BUT has a very bad downside
Simply we can add one groupbox and add your controls, in form load set groupbox visible to false and button click event visible to true something like....
private void Form3_Load(object sender, EventArgs e)
{
groupBox1.Visible = false;
}
private void button1_Click_1(object sender, EventArgs e)
{
if (button1.Text == "&Show")
{
button1.Text = "&Hide";
groupBox1.Visible = true;
}
else if (button1.Text == "&Hide")
{
button1.Text = "&Show";
groupBox1.Visible = false;
}
}

C# Tabless Control Previous/Back/Return Button failing?

I am hoping someone here can help me, i have a Tabless Control on my windows forms application and basically because the tabs are purposely hidden i have added 2 buttons to each tab "Next" and "Back".
This is the code snippet i have for my "Next" button:
private void nextbutton1_Click(object sender, EventArgs e)
{
tabControl1.SelectedTab = tabPage3;
this.toolStripStatusLabel8.Text = System.DateTime.Now.ToString();
}
Which works fine, however when i use the exact same theory on the "Back" button it does not work:
private void backbutton1_Click(object sender, EventArgs e)
{
tabControl1.SelectedTab = tabmain;
this.toolStripStatusLabel1.Text = System.DateTime.Now.ToString();
}
So my question is how does one go to a previous tabpage from a button? I have looked through here and tried all of the links that came up but nothing has worked any ideas?
You should use the SelectedIndex property instead of using concrete TabPage instances. This way it will still work when you decide to change the order of the pab pages or add new pages:
private void previousButton_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex > 0)
{
tabControl1.SelectedIndex--;
}
}
private void nextButton_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex < tabControl1.TabCount - 1)
{
tabControl1.SelectedIndex++;
}
}
Since there is no "Tabless" tab control in .NET Framework I can only assume that it works similar to the standard TabControl. If the solution doesn't work you should give us some information about the actual class you use.
BTW: There is no need to repeat the buttons on each page. Why don't you just put the buttons outside the TabControl?
Also: I see that you use a ToolStripStatusLabel to show the current time. Instead of updating it each time the user clicks somewhere add a Timer to your form. Set its Interval to 1000 and handle its Tick event. Update the label there:
private void timer1_Tick(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = DateTime.Now.ToLongTimeString();
}
This way it updates constantly and again there is no need to repeat anything. You need to call timer1.Start() in the form's constructor.

C# reach click button in webbrowser?

I want to click event button in webbrowser object.
Button is clicked I want to reach out and write the code? For example, the login button is clicked on the webbrowser object in the pop-up on the site to capture the event and would like to write the code?
I write an example for you(how get event clicked button):
private void Form1_Load(object sender, EventArgs e)
{
//Or navigate to your url
webBrowser1.DocumentText = "<html><body><button id=\"btn1\" type=\"button\">Click Me!</button><button id=\"btn2\" type=\"button\">Click Me!</button></body></html>";
}
Call Click event:(when page loaded)
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.Click += new HtmlElementEventHandler(Document_Click);
}
Get Active Element When User click on document
void Document_Click(object sender, HtmlElementEventArgs e)
{
//Check Element is Button
if (webBrowser1.Document.ActiveElement.TagName == "BUTTON")
{
if (webBrowser1.Document.ActiveElement.Id== "your button id")
{
//Do someting
}
}
}
If I understand correctly, you're using the WebBrowser control in C# WinForms and you would like to fire an event when a button is clicked.
The control doesn't have a click event, but the Document does. To do this you can use WebBrowser.Document.Click event and then loop through the HTML elements to find the one that was clicked.
web.Document.Click += new HtmlElementEventHandler(Document_Click);
This link will help also: webbrowser-control-get-element-by-type

Categories

Resources