C#: calling a button event handler method without actually clicking the button

how to call button click event in asp.net c#
how to call button click event in c# windows forms
asp.net button click event
visual studio call button click event
vb net call button click event from another form
how to call button click event in asp net c# using javascript
c# click button
c# call button press

I have a button in my aspx file called btnTest. The .cs file has a function which is called when the button is clicked.

btnTest_Click(object sender, EventArgs e)

How can I call this function from within my code (i.e. without actually clicking the button)?

btnTest_Click(null, null);

Provided that the method isn't using either of these parameters (it's very common not to.)

To be honest though this is icky. If you have code that needs to be called you should follow the following convention:

protected void btnTest_Click(object sender, EventArgs e)

protected void SomeOtherFunctionThatNeedsToCallTheCode()

protected void SomeSub()
   // ...

C#: calling a button event handler method without actually clicking the button The .cs file has a function which is called when the button is clicked. A good solution would be to extract the functionality into methods and call the methods inside the button handlers. This way you don't need to fire the click event, but to call a method. Is is also easier to maintain. – pasty May 10 '14 at 12:14. 1.


btnTest_Click( this, new EventArgs() );

How do I call a button click event from another form in C#? How to call a click event of a button without making a physical click in C#. Rate this: vote 1 vote 2 vote 3 vote 4 vote 5. Please Sign up or sign in to vote. See more:

All above methods are not good because you might change event function name. The easiest is:


How do you call a button click event in VB NET? Generally speaking your click event handler code should call out to one or many methods that perform various work. Not separating the implementation logic out into separate methods makes the logic much less testable, as the logic now is dependent upon more than it should ( GridView in your case).

You can use reflection to Invoke the OnClick method which will fire the click event handlers.

I feel dirty posting this but it works...

MethodInfo clickMethodInfo = typeof(Button).GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);

clickMethodInfo.Invoke(buttonToInvoke, new object[] { EventArgs.Empty });

Raises the event of the control. Raises the Click event of the Button control. example demonstrates how to specify and code an event handler for the Click event in order to display a simple message on the Web page. ASP.NET (C#) class, be sure to call the base class's OnClick(EventArgs) method so that registered  Occurs when the Button control is clicked. The following code example demonstrates how to specify and code an event handler for the Click event in order to display a message on the Web page when the Button control is clicked. <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0

If the method isn't using either sender or e you could call:

btnTest_Click(null, null);

What you probably should consider doing is extracting the code from within that method into its own method, which you could call from both the button click event handler, and any other places in code that the functionality is required.

The reason is that the Combine ( ) method is in the base class and does not know what sort of delegate you are returning Event handling is one it is probably the single biggest reason that programmers use C # language . In other words , the click event would be handled even without the button being actually clicked . Firstly because you should not call event handlers directly, only from their delegate. If you must simulate a click on a different button, then use the Button.PerformClick method instead - this causes all events chained to the button click event to be fired. Secondly because it could cause the Button2 event handler to crash.

Click the Save All button, and then execute the program. A method that performs a task in response to an event is an event handler. alternative courses that are not predetermined; a delegate provides a way to pass a reference to a method  When a user interacts with a GUI control (e.g., clicking a button on a form), one or more methods are executed in response to the above event. Events can also be generated without user interactions. Event handlers are methods in an object that are executed in response to some events occurring in the application.

It also makes it easy for users of a form to find out which way a form was closed. To handle button clicks without an event handler, you must set a button's Specifically, we would like to run the same event handler and return -- C- E. o o *- o  Razor components provide event handling features. For an HTML element attribute named @on{EVENT} (for example, @onclick) with a delegate-typed value, a Razor component treats the attribute's value as an event handler. The following code calls the UpdateHeading method when the button is selected in the UI:

The action can be caused by user interaction, such as a button click, Typically, to raise an event, you add a method that is marked as protected and virtual (in C​#) or A derived class should always call the On EventName method of the Use the EventHandler delegate for all events that do not include  How to call javascript and C# function on HTML Button Click. means i have to fire both OnClick(on this event i have to call java sctipt function) and OnServerClick(on this event i have to call C# function) event on HTML Button Click Thanks, Pankaj Kumar Singh

  • No. Not too much code. You shouldn't use a method both for a call and an event. It's misleading and confusing.
  • As far as the exception handling that depends on a lot of factors that extend well beyond the scope of this question.
  • No it's not self-documented. That's the point. If btnTest_Click is fired at times when btnTest has not been clicked that's misleading. Period.
  • There is no discussion. Having btnTest_Click execute when btnTest has not been clicked is misleading.
  • Siding with Spencer here, SomeSub is a separation of concerns. Spencer isn't advocating calling it SomeSub, but probably more HandleUserLogin. It's a lot more obvious to maintenance developers to see: HandleUserLogin (); than btnLogin_Click (null, null), especially if btnLogin_Click does more than just handle the user's login!
  • EventArgs.Empty is static of new EventArgs(). So EventArgs.Empty is more appropriate, but creating new is nearly as good.
  • passing a generic object seems like a bad idea. better to pass the button or null.
  • @John Why do you feel that way?
  • because the sender is normally the control, so if the click handler uses it at all, it will expect that sender as Control will work.
  • (sender as Control) will return null if you pass in an Object, so that argument doesn't work. My counter argument is that by passing in a null, you break code that uses (sender.GetType) to check the type.
  • While this might answer the authors question, it lacks some explaining words and/or links to documentation. Raw code snippets are not very helpful without some phrases around them. You may also find how to write a good answer very helpful. Please edit your answer - From Review