Control.MouseEnter Event
Assembly: System.Windows.Forms (in system.windows.forms.dll)
public: event EventHandler^ MouseEnter { void add (EventHandler^ value); void remove (EventHandler^ value); }
/** @event */ public void add_MouseEnter (EventHandler value) /** @event */ public void remove_MouseEnter (EventHandler value)
JScript supports the use of events, but not the declaration of new ones.
Mouse events occur in the following order:
-
MouseEnter
Note |
|---|
| The following events are not raised for the TabControl class unless there is at least one TabPage in the TabControl.TabPages collection: Click, DoubleClick, MouseDown, MouseUp, MouseHover, MouseEnter, MouseLeave and MouseMove. If there is at least one TabPage in the collection, and the user interacts with the tab control's header (where the TabPage names appear), the TabControl raises the appropriate event. However, if the user interaction is within the client area of the tab page, the TabPage raises the appropriate event. |
For more information about handling events, see Consuming Events.
The following code example demonstrates using different mouse events to draw the path of the mouse on a Panel. A line segment is added to the GraphicsPath for each MouseMove and MouseDown events that occur. To update the graphics, the Invalidate method is called for the Panel on each MouseDown and MouseUp event. In addition, the graphic path is scrolled up or down when the MouseWheel event occurs. Additional mouse events, like MouseHover, are identified on screen as well. Also displayed on the screen is additional information about the mouse from the SystemInformation class.
#using <System.dll> #using <System.Windows.Forms.dll> #using <System.Drawing.dll> using namespace System; using namespace System::Drawing; using namespace System::Windows::Forms; namespace MouseEvent { public ref class Form1: public System::Windows::Forms::Form { private: System::Windows::Forms::Panel^ panel1; System::Windows::Forms::Label ^ label1; System::Windows::Forms::Label ^ label2; System::Windows::Forms::Label ^ label3; System::Windows::Forms::Label ^ label4; System::Windows::Forms::Label ^ label5; System::Windows::Forms::Label ^ label6; System::Windows::Forms::Label ^ label7; System::Windows::Forms::Label ^ label8; System::Windows::Forms::Label ^ label9; System::Windows::Forms::Button^ clearButton; System::Drawing::Drawing2D::GraphicsPath^ mousePath; System::Windows::Forms::GroupBox^ groupBox1; int fontSize; public: Form1() { fontSize = 20; mousePath = gcnew System::Drawing::Drawing2D::GraphicsPath; this->panel1 = gcnew System::Windows::Forms::Panel; this->label1 = gcnew System::Windows::Forms::Label; this->clearButton = gcnew System::Windows::Forms::Button; this->label2 = gcnew System::Windows::Forms::Label; this->label3 = gcnew System::Windows::Forms::Label; this->label4 = gcnew System::Windows::Forms::Label; this->label5 = gcnew System::Windows::Forms::Label; this->label6 = gcnew System::Windows::Forms::Label; this->label7 = gcnew System::Windows::Forms::Label; this->label8 = gcnew System::Windows::Forms::Label; this->label9 = gcnew System::Windows::Forms::Label; this->groupBox1 = gcnew System::Windows::Forms::GroupBox; // Mouse Events Label this->label1->Location = System::Drawing::Point( 24, 504 ); this->label1->Size = System::Drawing::Size( 392, 23 ); // DoubleClickSize Label this->label2->AutoSize = true; this->label2->Location = System::Drawing::Point( 24, 48 ); this->label2->Size = System::Drawing::Size( 35, 13 ); // DoubleClickTime Label this->label3->AutoSize = true; this->label3->Location = System::Drawing::Point( 24, 72 ); this->label3->Size = System::Drawing::Size( 35, 13 ); // MousePresent Label this->label4->AutoSize = true; this->label4->Location = System::Drawing::Point( 24, 96 ); this->label4->Size = System::Drawing::Size( 35, 13 ); // MouseButtons Label this->label5->AutoSize = true; this->label5->Location = System::Drawing::Point( 24, 120 ); this->label5->Size = System::Drawing::Size( 35, 13 ); // MouseButtonsSwapped Label this->label6->AutoSize = true; this->label6->Location = System::Drawing::Point( 320, 48 ); this->label6->Size = System::Drawing::Size( 35, 13 ); // MouseWheelPresent Label this->label7->AutoSize = true; this->label7->Location = System::Drawing::Point( 320, 72 ); this->label7->Size = System::Drawing::Size( 35, 13 ); // MouseWheelScrollLines Label this->label8->AutoSize = true; this->label8->Location = System::Drawing::Point( 320, 96 ); this->label8->Size = System::Drawing::Size( 35, 13 ); // NativeMouseWheelSupport Label this->label9->AutoSize = true; this->label9->Location = System::Drawing::Point( 320, 120 ); this->label9->Size = System::Drawing::Size( 35, 13 ); // Mouse Panel this->panel1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Left | System::Windows::Forms::AnchorStyles::Right); this->panel1->BackColor = System::Drawing::SystemColors::ControlDark; this->panel1->Location = System::Drawing::Point( 16, 160 ); this->panel1->Size = System::Drawing::Size( 664, 320 ); this->panel1->MouseUp += gcnew System::Windows::Forms::MouseEventHandler( this, &Form1::panel1_MouseUp ); this->panel1->Paint += gcnew System::Windows::Forms::PaintEventHandler( this, &Form1::panel1_Paint ); this->panel1->MouseEnter += gcnew System::EventHandler( this, &Form1::panel1_MouseEnter ); this->panel1->MouseHover += gcnew System::EventHandler( this, &Form1::panel1_MouseHover ); this->panel1->MouseMove += gcnew System::Windows::Forms::MouseEventHandler( this, &Form1::panel1_MouseMove ); this->panel1->MouseLeave += gcnew System::EventHandler( this, &Form1::panel1_MouseLeave ); this->panel1->MouseDown += gcnew System::Windows::Forms::MouseEventHandler( this, &Form1::panel1_MouseDown ); this->panel1->MouseWheel += gcnew System::Windows::Forms::MouseEventHandler( this, &Form1::panel1_MouseWheel ); // Clear Button this->clearButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right); this->clearButton->Location = System::Drawing::Point( 592, 504 ); this->clearButton->TabIndex = 1; this->clearButton->Text = "Clear"; this->clearButton->Click += gcnew System::EventHandler( this, &Form1::clearButton_Click ); // GroupBox this->groupBox1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Left | System::Windows::Forms::AnchorStyles::Right); this->groupBox1->Location = System::Drawing::Point( 16, 24 ); this->groupBox1->Size = System::Drawing::Size( 664, 128 ); this->groupBox1->Text = "System::Windows::Forms::SystemInformation"; // Set up how the form should be displayed and add the controls to the form. this->ClientSize = System::Drawing::Size( 696, 534 ); array<System::Windows::Forms::Control^>^temp0 = {this->label9,this->label8,this->label7,this->label6,this->label5,this->label4,this->label3,this->label2,this->clearButton,this->panel1,this->label1,this->groupBox1}; this->Controls->AddRange( temp0 ); this->Text = "Mouse Event Example"; // Displays information about the system mouse. label2->Text = "SystemInformation::DoubleClickSize: {0}",SystemInformation::DoubleClickSize; label3->Text = "SystemInformation::DoubleClickTime: {0}",SystemInformation::DoubleClickTime; label4->Text = "SystemInformation::MousePresent: {0}",SystemInformation::MousePresent; label5->Text = "SystemInformation::MouseButtons: {0}",SystemInformation::MouseButtons; label6->Text = "SystemInformation::MouseButtonsSwapped: {0}",SystemInformation::MouseButtonsSwapped; label7->Text = "SystemInformation::MouseWheelPresent: {0}",SystemInformation::MouseWheelPresent; label8->Text = "SystemInformation::MouseWheelScrollLines: {0}",SystemInformation::MouseWheelScrollLines; label9->Text = "SystemInformation::NativeMouseWheelSupport: {0}",SystemInformation::NativeMouseWheelSupport; } private: void panel1_MouseDown( Object^ /*sender*/, System::Windows::Forms::MouseEventArgs^ e ) { // Update the mouse path with the mouse information Point mouseDownLocation = Point(e->X,e->Y); String^ eventString = nullptr; switch ( e->Button ) { case ::MouseButtons::Left: eventString = "L"; break; case ::MouseButtons::Right: eventString = "R"; break; case ::MouseButtons::Middle: eventString = "M"; break; case ::MouseButtons::XButton1: eventString = "X1"; break; case ::MouseButtons::XButton2: eventString = "X2"; break; case ::MouseButtons::None: default: break; } if ( eventString != nullptr ) { mousePath->AddString( eventString, FontFamily::GenericSerif, (int)FontStyle::Bold, (float)fontSize, mouseDownLocation, StringFormat::GenericDefault ); } else { mousePath->AddLine( mouseDownLocation, mouseDownLocation ); } panel1->Focus(); panel1->Invalidate(); } void panel1_MouseEnter( Object^ sender, System::EventArgs^ /*e*/ ) { // Update the mouse event label to indicate the MouseEnter event occurred. label1->Text = String::Concat( sender->GetType(), ": MouseEnter" ); } void panel1_MouseHover( Object^ sender, System::EventArgs^ /*e*/ ) { // Update the mouse event label to indicate the MouseHover event occurred. label1->Text = String::Concat( sender->GetType(), ": MouseHover" ); } void panel1_MouseLeave( Object^ sender, System::EventArgs^ /*e*/ ) { // Update the mouse event label to indicate the MouseLeave event occurred. label1->Text = String::Concat( sender->GetType(), ": MouseLeave" ); } void panel1_MouseMove( Object^ /*sender*/, System::Windows::Forms::MouseEventArgs^ e ) { // Update the mouse path that is drawn onto the Panel. int mouseX = e->X; int mouseY = e->Y; mousePath->AddLine( mouseX, mouseY, mouseX, mouseY ); } void panel1_MouseWheel( Object^ /*sender*/, System::Windows::Forms::MouseEventArgs^ e ) { // Update the drawing based upon the mouse wheel scrolling. int numberOfTextLinesToMove = e->Delta * SystemInformation::MouseWheelScrollLines / 120; int numberOfPixelsToMove = numberOfTextLinesToMove * fontSize; if ( numberOfPixelsToMove != 0 ) { System::Drawing::Drawing2D::Matrix^ translateMatrix = gcnew System::Drawing::Drawing2D::Matrix; translateMatrix->Translate( 0, (float)numberOfPixelsToMove ); mousePath->Transform(translateMatrix); } panel1->Invalidate(); } void panel1_MouseUp( Object^ /*sender*/, System::Windows::Forms::MouseEventArgs^ e ) { Point mouseUpLocation = System::Drawing::Point( e->X, e->Y ); // Show the number of clicks in the path graphic. int numberOfClicks = e->Clicks; mousePath->AddString( String::Format( " {0}", numberOfClicks ), FontFamily::GenericSerif, (int)FontStyle::Bold, (float)fontSize, mouseUpLocation, StringFormat::GenericDefault ); panel1->Invalidate(); } void panel1_Paint( Object^ /*sender*/, System::Windows::Forms::PaintEventArgs^ e ) { // Perform the painting of the Panel. e->Graphics->DrawPath( System::Drawing::Pens::DarkRed, mousePath ); } void clearButton_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { // Clear the Panel display. delete mousePath; mousePath = gcnew System::Drawing::Drawing2D::GraphicsPath; panel1->Invalidate(); } }; } [STAThread] int main() { Application::Run( gcnew MouseEvent::Form1 ); }
package MouseEvent;
import System.*;
import System.Drawing.*;
import System.Windows.Forms.*;
public class Form1 extends System.Windows.Forms.Form
{
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Button clearButton;
private System.Drawing.Drawing2D.GraphicsPath mousePath;
private System.Windows.Forms.GroupBox groupBox1;
private int fontSize = 20;
/** @attribute STAThread()
*/
public static void main(String[] args)
{
Application.Run(new Form1());
} //main
public Form1()
{
mousePath = new System.Drawing.Drawing2D.GraphicsPath();
this.panel1 = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.clearButton = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
// Mouse Events Label
this.label1.set_Location(new System.Drawing.Point(24, 504));
this.label1.set_Size(new System.Drawing.Size(392, 23));
// DoubleClickSize Label
this.label2.set_AutoSize(true);
this.label2.set_Location(new System.Drawing.Point(24, 48));
this.label2.set_Size(new System.Drawing.Size(35, 13));
// DoubleClickTime Label
this.label3.set_AutoSize(true);
this.label3.set_Location(new System.Drawing.Point(24, 72));
this.label3.set_Size(new System.Drawing.Size(35, 13));
// MousePresent Label
this.label4.set_AutoSize(true);
this.label4.set_Location(new System.Drawing.Point(24, 96));
this.label4.set_Size(new System.Drawing.Size(35, 13));
// MouseButtons Label
this.label5.set_AutoSize(true);
this.label5.set_Location(new System.Drawing.Point(24, 120));
this.label5.set_Size(new System.Drawing.Size(35, 13));
// MouseButtonsSwapped Label
this.label6.set_AutoSize(true);
this.label6.set_Location(new System.Drawing.Point(320, 48));
this.label6.set_Size(new System.Drawing.Size(35, 13));
// MouseWheelPresent Label
this.label7.set_AutoSize(true);
this.label7.set_Location(new System.Drawing.Point(320, 72));
this.label7.set_Size(new System.Drawing.Size(35, 13));
// MouseWheelScrollLines Label
this.label8.set_AutoSize(true);
this.label8.set_Location(new System.Drawing.Point(320, 96));
this.label8.set_Size(new System.Drawing.Size(35, 13));
// NativeMouseWheelSupport Label
this.label9.set_AutoSize(true);
this.label9.set_Location(new System.Drawing.Point(320, 120));
this.label9.set_Size(new System.Drawing.Size(35, 13));
// Mouse Panel
this.panel1.set_Anchor(System.Windows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Left
| System.Windows.Forms.AnchorStyles.Right);
this.panel1.set_BackColor(System.Drawing.SystemColors.get_ControlDark());
this.panel1.set_Location(new System.Drawing.Point(16, 160));
this.panel1.set_Size(new System.Drawing.Size(664, 320));
this.panel1.add_MouseUp(
new System.Windows.Forms.MouseEventHandler(this.panel1_MouseUp));
this.panel1.add_Paint(new System.Windows.Forms.PaintEventHandler(
this.panel1_Paint));
this.panel1.add_MouseEnter(new System.EventHandler(
this.panel1_MouseEnter));
this.panel1.add_MouseHover(new System.EventHandler(
this.panel1_MouseHover));
this.panel1.add_MouseMove(
new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove));
this.panel1.add_MouseLeave(
new System.EventHandler(this.panel1_MouseLeave));
this.panel1.add_MouseDown(
new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown));
this.panel1.add_MouseWheel(
new System.Windows.Forms.MouseEventHandler(this.panel1_MouseWheel));
// Clear Button
this.clearButton.set_Anchor(System.Windows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Right);
this.clearButton.set_Location(new System.Drawing.Point(592, 504));
this.clearButton.set_TabIndex(1);
this.clearButton.set_Text("Clear");
this.clearButton.add_Click(new System.EventHandler(
this.clearButton_Click));
// GroupBox
this.groupBox1.set_Anchor(System.Windows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Left
| System.Windows.Forms.AnchorStyles.Right);
this.groupBox1.set_Location(new System.Drawing.Point(16, 24));
this.groupBox1.set_Size(new System.Drawing.Size(664, 128));
this.groupBox1.set_Text("System.Windows.Forms.SystemInformation");
// Set up how the form should be displayed and add the controls
// to the form.
this.set_ClientSize(new System.Drawing.Size(696, 534));
this.get_Controls().AddRange(new System.Windows.Forms.Control[] {
this.label9, this.label8, this.label7, this.label6, this.label5,
this.label4, this.label3, this.label2, this.clearButton,
this.panel1, this.label1, this.groupBox1 });
this.set_Text("Mouse Event Example");
// Displays information about the system mouse.
label2.set_Text("SystemInformation.DoubleClickSize: "
+ SystemInformation.get_DoubleClickSize().ToString());
label3.set_Text("SystemInformation.DoubleClickTime: "
+ ((Int32)SystemInformation.get_DoubleClickTime()).ToString());
label4.set_Text("SystemInformation.MousePresent: "
+ ((System.Boolean)SystemInformation.get_MousePresent()).ToString());
label5.set_Text("SystemInformation.MouseButtons: "
+ ((Int32)SystemInformation.get_MouseButtons()).ToString());
label6.set_Text("SystemInformation.MouseButtonsSwapped: "
+ ((System.Boolean)SystemInformation.get_MouseButtonsSwapped()).
ToString());
label7.set_Text("SystemInformation.MouseWheelPresent: "
+ ((System.Boolean)SystemInformation.get_MouseWheelPresent()).
ToString());
label8.set_Text("SystemInformation.MouseWheelScrollLines: "
+ ((Int32)SystemInformation.get_MouseWheelScrollLines()).
ToString());
label9.set_Text("SystemInformation.NativeMouseWheelSupport: "
+ ((System.Boolean)SystemInformation.
get_NativeMouseWheelSupport()).ToString());
} //Form1
private void panel1_MouseDown(Object sender,
System.Windows.Forms.MouseEventArgs e)
{
// Update the mouse path with the mouse information
Point mouseDownLocation = new Point(e.get_X(), e.get_Y());
String eventString = null;
switch (e.get_Button()) {
case MouseButtons.Left:
eventString = "L";
break;
case MouseButtons.Right:
eventString = "R";
break;
case MouseButtons.Middle:
eventString = "M";
break;
case MouseButtons.XButton1:
eventString = "X1";
break;
case MouseButtons.XButton2:
eventString = "X2";
break;
case MouseButtons.None:
default:
break;
}
if (eventString != null) {
mousePath.AddString(eventString, FontFamily.get_GenericSerif(),
(int)FontStyle.Bold, fontSize, mouseDownLocation,
StringFormat.get_GenericDefault());
}
else {
mousePath.AddLine(mouseDownLocation, mouseDownLocation);
}
panel1.Focus();
panel1.Invalidate();
} //panel1_MouseDown
private void panel1_MouseEnter(Object sender, System.EventArgs e)
{
// Update the mouse event label to indicate the MouseEnter event occurred.
label1.set_Text(sender.GetType().ToString() + ": MouseEnter");
} //panel1_MouseEnter
private void panel1_MouseHover(Object sender, System.EventArgs e)
{
// Update the mouse event label to indicate the MouseHover event occurred.
label1.set_Text(sender.GetType().ToString() + ": MouseHover");
} //panel1_MouseHover
private void panel1_MouseLeave(Object sender, System.EventArgs e)
{
// Update the mouse event label to indicate the MouseLeave event occurred.
label1.set_Text(sender.GetType().ToString() + ": MouseLeave");
} //panel1_MouseLeave
private void panel1_MouseMove(Object sender,
System.Windows.Forms.MouseEventArgs e)
{
// Update the mouse path that is drawn onto the Panel.
int mouseX = e.get_X();
int mouseY = e.get_Y();
mousePath.AddLine(mouseX, mouseY, mouseX, mouseY);
} //panel1_MouseMove
private void panel1_MouseWheel(Object sender,
System.Windows.Forms.MouseEventArgs e)
{
// Update the drawing based upon the mouse wheel scrolling.
int numberOfTextLinesToMove =
e.get_Delta() * SystemInformation.get_MouseWheelScrollLines() / 120;
int numberOfPixelsToMove = numberOfTextLinesToMove * fontSize;
if (numberOfPixelsToMove != 0) {
System.Drawing.Drawing2D.Matrix translateMatrix =
new System.Drawing.Drawing2D.Matrix();
translateMatrix.Translate(0, numberOfPixelsToMove);
mousePath.Transform(translateMatrix);
}
panel1.Invalidate();
} //panel1_MouseWheel
private void panel1_MouseUp(Object sender,
System.Windows.Forms.MouseEventArgs e)
{
Point mouseUpLocation = new System.Drawing.Point(e.get_X(), e.get_Y());
// Show the number of clicks in the path graphic.
int numberOfClicks = e.get_Clicks();
mousePath.AddString(" " + ((Int32)numberOfClicks).ToString(),
FontFamily.get_GenericSerif(), (int)(FontStyle.Bold), fontSize,
mouseUpLocation, StringFormat.get_GenericDefault());
panel1.Invalidate();
} //panel1_MouseUp
private void panel1_Paint(Object sender,
System.Windows.Forms.PaintEventArgs e)
{
// Perform the painting of the Panel.
e.get_Graphics().DrawPath(System.Drawing.Pens.get_DarkRed(), mousePath);
} //panel1_Paint
private void clearButton_Click(Object sender, System.EventArgs e)
{
// Clear the Panel display.
mousePath.Dispose();
mousePath = new System.Drawing.Drawing2D.GraphicsPath();
panel1.Invalidate();
} //clearButton_Click
} //Form1
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Note