6
Answers

problem in executing this code

ali

ali

14y
3.3k
1

Handling events in C# is little bit tricky than in C++ or VB. In C#, you write a delegate and then write an event handler.  These event handlers are overridable public events defined in the Control or other WinForms classes. 
1. Write a Delegate
I want to handle Mouse Down events and do something when left or right mouse buttons are pressed. Write this line of code in your InitializeComponent function.
this.MouseDown += new System.WinForms.MouseEventHandler(this.Form_MouseDown);
2. Write the Event
Now you write the event handle. The output parameter of your event returns System.WinForms.MouseEventArgs object which gives you the details about mouse down such as what button is pressed or how many times. Here are MouseEventArgs members.
MouseEventArgs members
Button Indicates which mouse button was pressed. It could be Left, Right, Middle, or None.
Clicks Indicates the number of times the mouse button was pressed and released. 
Delta Indicates a signed count of the number of detents the mouse wheel has rotated. 
X The x-coordinate of mouse click.
Y The y-coordinate of  mouse click. 
Event Handler
private void Form_MouseDown(object sender, System.WinForms.MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Left:
MessageBox.Show(this,"Left Button Click");
break;
case MouseButtons.Right:
MessageBox.Show(this,"Right Button Click" );
break;
case MouseButtons.Middle:
break;
default:
break;
}
 
}
 
 
 
 
THIS OCCURED
The type or namespace name 'WinForms' does not exist in the namespace 'System' (are you missing an assembly reference?)
WHT SHOULD I DO iT URGENT PLZ HELP
Answers (6)
0
ali

ali

NA 14 0 14y

it is working in massage box
but when i do following changes to change button text
switch (e.Button)
                {
                    case MouseButtons.Left:
                        button1.Text = ("X");
                        break;
                    case MouseButtons.Right:
                        button1.Text = ("0");
                        break;
                    case MouseButtons.Middle:
                        break;
                    default:
                        break;
                }
 
it works it change the text but when i click on form
i want it to change when i click on button
can u help me one more time
0
Jaish Mathews

Jaish Mathews

NA 7.3k 1.2m 14y

 
Hi,
MouseEventArgs is defines  under "System.Windows.Forms".
But you are already in Form so only need to use like below
private void Form_MouseDown(object sender, MouseEventArgs e)
0
ali

ali

NA 14 0 14y

Event Handler
private void Form_MouseDown(object sender, System.Windows.MouseEventArgs e)

 
 
THIS error OCCURED
The type or namespace name'MouseEventArgs '  does not exist in the namespace 'System' (are you missing an assembly reference?)
 
WHT SHOULD I DO iT URGENT PLZ HELP
0
Jaish Mathews

Jaish Mathews

NA 7.3k 1.2m 14y

Hi,
The EventHandler declaration should be like below.
this.MouseDown +=  new System.Windows.Forms.MouseEventHandler(this.Form_MouseDown);

You are using  System.WinForms.MouseEventHandler. I never saw any thing like this
 
0
ali

ali

NA 14 0 14y

im working in window.
plz help me bro its ugrent 
0
Amit Choudhary

Amit Choudhary

NA 27.7k 3m 14y
hi friend,

 Are you doing it in Console application.?? or in Windows itself?