Avatar of karlhsc
karlhsc
Flag for Afghanistan asked on

OnClick Variables

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.
ASP.NET.NET ProgrammingC#

Avatar of undefined
Last Comment
karlhsc

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
Carl Tawn

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
Todd Gerbert

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

Carl Tawn

@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.
karlhsc

ASKER
tgerbert: thank you for the additional information.  I see the merit in the architecture you provided.
Your help has saved me hundreds of hours of internet surfing.
fblack61