Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

OnClick Variables

Posted on 2011-03-08
4
Medium Priority
?
404 Views
Last Modified: 2012-05-11
Hello, I am using C# to create an ASP.NET website.  Here's my issue:

I have a standard button on one page.  This button has an onclick setup to fire a method.  I have a second button on this page.  When the user clicks on this button, its onclick setup fires another method which does some stuff, BUT at the end of this method, I would like it to fire the first button's onclick method.

Currently when I add the name of the first button's onclick method ( button1_Click() ) to the end of the second button's onclick method, this error is displayed: "No overload method for..takes 0 arguments".

I know what this error means: the system wants me to include two variables when calling button1_click, which are the default:  object sender, EventArgs e

What are object sender, EventArgs e and how do I include them in my call to button1_Click from the button2_click method?

Thank you in advance.
0
Comment
Question by:karlhsc
  • 2
4 Comments
 
LVL 52

Accepted Solution

by:
Carl Tawn earned 2000 total points
ID: 35073996
"Sender" refers to the control that raised the event. "EventArgs" will is an object that contains data about the event, in the case of a button click event eventargs doesn't tell you anything useful. If you want to manually call the method associated with the click event you can safely pass null for both arguments:
button1_Click(null, null);

Open in new window

0
 
LVL 33

Expert Comment

by:Todd Gerbert
ID: 35074096
carl_tawn is absolutely correct, I would only expand on his response slightly to say that it is usually safe to pass null for both arguments - it certainly seems to be the case you could safely do so given your current example, just wanted to point out it's not always safe (99% safe, 1% not safe).

Also, I would suggest moving the code that actually does "stuff" into it's own method(s), and then calling those methods from the button event handlers:
private void Button1_Click(object sender, EventArgs e)
{
  // Button 1 just does stuff.
  DoStuff();
}

private void Button2_Click(object sender, EventArgs e)
{
  // Button 2 does stuff, and also does other stuff
  DoStuff();
  DoOtherStuff();
}

private void DoStuff()
{
  // Do some stuff 
}

private void DoOtherStuff()
{
  // Do some other stuff
}

Open in new window

0
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 35074147
@tgerbert - You are of course correct - just figured it wasn't likely to be an issue in this scenario so skimmed over it :)

Just to expand a little. It is possible to use a single event handler as the target for an event on multiple controls. In a scenario like that you may want to cast "sender" in order to find out which control raised the event and act accordingly.
0
 

Author Comment

by:karlhsc
ID: 35074186
tgerbert: thank you for the additional information.  I see the merit in the architecture you provided.
0

Featured Post

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
Hello there! As a developer I have modified and refactored the unit tests which was written by fellow developers in the past. On the course, I have gone through various misconceptions and technical challenges when it comes to implementation. I would…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …

885 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question