MouseButtons 枚举
指定定义哪个鼠标按钮曾按下的常数。
此枚举有一个 FlagsAttribute 属性,允许其成员值按位组合。
**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)
语法
声明
<FlagsAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration MouseButtons
用法
Dim instance As MouseButtons
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum MouseButtons
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum class MouseButtons
/** @attribute FlagsAttribute() */
/** @attribute ComVisibleAttribute(true) */
public enum MouseButtons
FlagsAttribute
ComVisibleAttribute(true)
public enum MouseButtons
成员
成员名称 | 说明 | |
---|---|---|
Left | 鼠标左按钮曾按下。 | |
Middle | 鼠标中按钮曾按下。 | |
None | 未曾按下鼠标按钮。 | |
Right | 鼠标右按钮曾按下。 | |
XButton1 | 第 1 个 XButton 曾按下。
Microsoft 通过 Windows 2000 引入对 Microsoft 智能鼠标浏览器 (Microsoft IntelliMouse Explorer) 的支持,它是一个带有五个按钮的鼠标。两个新的鼠标按钮(XBUTTON1 和 XBUTTON2)可提供向后/向前导航功能。 |
|
XButton2 | 第 2 个 XButton 曾按下。
Microsoft 通过 Windows 2000 引入对 Microsoft 智能鼠标浏览器 (Microsoft IntelliMouse Explorer) 的支持,它是一个带有五个按钮的鼠标。两个新的鼠标按钮(XBUTTON1 和 XBUTTON2)可提供向后/向前导航功能。 |
备注
许多类都使用此枚举,这些类包括 AxHost、Control、DataGrid、Form、RadioButton、Splitter、StatusBar 和 UpDownBase。
示例
下面的示例说明了如何使用 GetCharFromPosition 方法从 RichTextBox 的内容中获取一个字符(已给定其控件坐标)。此代码示例将使用作为参数传递给事件处理程序的 MouseEventArgs 对象中的坐标来在控件中确定位置以获取字符。如果该字符不是空格字符,则它将显示在 MessageBox 中。此示例假定已经创建了一个名为 richTextBox1
的 RichTextBox 控件,并且已将此代码示例与 RichTextBox 的 MouseDown 事件相关联。
Private Sub richTextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles richTextBox1.MouseDown
' Determine which mouse button is clicked.
If e.Button = MouseButtons.Left Then
' Obtain the character at which the mouse cursor was clicked.
Dim tempChar As Char = richTextBox1.GetCharFromPosition(New Point(e.X, e.Y))
' Determine whether the character is an empty space.
If tempChar <> " " Then
' Display the character in a message box.
MessageBox.Show(("The character at the specified position is " + tempChar + "."))
End If
End If
End Sub
private void richTextBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Determine which mouse button is clicked.
if(e.Button == MouseButtons.Left)
{
// Obtain the character at which the mouse cursor was clicked at.
char tempChar = richTextBox1.GetCharFromPosition(new Point(e.X, e.Y));
// Determine whether the character is an empty space.
if (tempChar.ToString() != " ")
// Display the character in a message box.
MessageBox.Show("The character at the specified position is " + tempChar + ".");
}
}
private:
void richTextBox1_MouseDown( Object^ /*sender*/, System::Windows::Forms::MouseEventArgs^ e )
{
// Determine which mouse button is clicked.
if ( e->Button == ::MouseButtons::Left )
{
// Obtain the character at which the mouse cursor was clicked at.
Char tempChar = richTextBox1->GetCharFromPosition( Point(e->X,e->Y) );
// Determine whether the character is an empty space.
if ( !tempChar.ToString()->Equals( " " ) )
// Display the character in a message box.
MessageBox::Show( String::Format( "The character at the specified position is {0}.", tempChar ) );
}
}
private void richTextBox1_MouseDown(Object sender, System.Windows.
Forms.MouseEventArgs e)
{
// Determine which mouse button is clicked.
if (e.get_Button().Equals(get_MouseButtons().Left)) {
// Obtain the character at which the mouse cursor was clicked at.
char tempChar = richTextBox1.GetCharFromPosition(new Point(e.
get_X(), e.get_Y()));
// Determine whether the character is an empty space.
if (!(((System.Char)tempChar).ToString().Equals(" "))) {
// Display the character in a message box.
MessageBox.Show("The character at the specified position is "
+ tempChar + ".");
}
}
} //richTextBox1_MouseDown
下面的示例演示使用不同的鼠标事件在 Panel 上绘制鼠标路径。对于发生的每个 MouseMove 和 MouseDown 事件,都将一个线段添加到 GraphicsPath。要更新该图形,请为每个 MouseDown 和 MouseUp 事件上的 Panel 调用 Invalidate 方法。此外,当 MouseWheel 事件发生时,图形路径将向上滚动或向下滚动。其他鼠标事件(如 MouseHover)也在屏幕上标识。同时屏幕上还显示有关 SystemInformation 类中鼠标的其他信息。
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Namespace MouseEvent
' Summary description for Form1.
Public NotInheritable Class Form1
Inherits System.Windows.Forms.Form
Friend WithEvents panel1 As System.Windows.Forms.Panel
Private label1 As System.Windows.Forms.Label
Private label2 As System.Windows.Forms.Label
Private label3 As System.Windows.Forms.Label
Private label4 As System.Windows.Forms.Label
Private label5 As System.Windows.Forms.Label
Private label6 As System.Windows.Forms.Label
Private label7 As System.Windows.Forms.Label
Private label8 As System.Windows.Forms.Label
Private label9 As System.Windows.Forms.Label
Friend WithEvents clearButton As System.Windows.Forms.Button
Private mousePath As System.Drawing.Drawing2D.GraphicsPath
Private groupBox1 As System.Windows.Forms.GroupBox
Private fontSize As Integer = 20
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New Form1())
End Sub 'Main
Public Sub New()
mousePath = New System.Drawing.Drawing2D.GraphicsPath()
Me.panel1 = New System.Windows.Forms.Panel()
Me.label1 = New System.Windows.Forms.Label()
Me.clearButton = New System.Windows.Forms.Button()
Me.label2 = New System.Windows.Forms.Label()
Me.label3 = New System.Windows.Forms.Label()
Me.label4 = New System.Windows.Forms.Label()
Me.label5 = New System.Windows.Forms.Label()
Me.label6 = New System.Windows.Forms.Label()
Me.label7 = New System.Windows.Forms.Label()
Me.label8 = New System.Windows.Forms.Label()
Me.label9 = New System.Windows.Forms.Label()
Me.groupBox1 = New System.Windows.Forms.GroupBox()
' Mouse Events Label
Me.label1.Location = New System.Drawing.Point(24, 504)
Me.label1.Size = New System.Drawing.Size(392, 23)
' DoubleClickSize Label
Me.label2.AutoSize = True
Me.label2.Location = New System.Drawing.Point(24, 48)
Me.label2.Size = New System.Drawing.Size(35, 13)
' DoubleClickTime Label
Me.label3.AutoSize = True
Me.label3.Location = New System.Drawing.Point(24, 72)
Me.label3.Size = New System.Drawing.Size(35, 13)
' MousePresent Label
Me.label4.AutoSize = True
Me.label4.Location = New System.Drawing.Point(24, 96)
Me.label4.Size = New System.Drawing.Size(35, 13)
' MouseButtons Label
Me.label5.AutoSize = True
Me.label5.Location = New System.Drawing.Point(24, 120)
Me.label5.Size = New System.Drawing.Size(35, 13)
' MouseButtonsSwapped Label
Me.label6.AutoSize = True
Me.label6.Location = New System.Drawing.Point(320, 48)
Me.label6.Size = New System.Drawing.Size(35, 13)
' MouseWheelPresent Label
Me.label7.AutoSize = True
Me.label7.Location = New System.Drawing.Point(320, 72)
Me.label7.Size = New System.Drawing.Size(35, 13)
' MouseWheelScrollLines Label
Me.label8.AutoSize = True
Me.label8.Location = New System.Drawing.Point(320, 96)
Me.label8.Size = New System.Drawing.Size(35, 13)
' NativeMouseWheelSupport Label
Me.label9.AutoSize = True
Me.label9.Location = New System.Drawing.Point(320, 120)
Me.label9.Size = New System.Drawing.Size(35, 13)
' Mouse Panel
Me.panel1.Anchor = System.Windows.Forms.AnchorStyles.Top Or _
System.Windows.Forms.AnchorStyles.Left Or _
System.Windows.Forms.AnchorStyles.Right
Me.panel1.BackColor = System.Drawing.SystemColors.ControlDark
Me.panel1.Location = New System.Drawing.Point(16, 160)
Me.panel1.Size = New System.Drawing.Size(664, 320)
' Clear Button
Me.clearButton.Anchor = System.Windows.Forms.AnchorStyles.Top Or _
System.Windows.Forms.AnchorStyles.Right
Me.clearButton.Location = New System.Drawing.Point(592, 504)
Me.clearButton.TabIndex = 1
Me.clearButton.Text = "Clear"
' GroupBox
Me.groupBox1.Anchor = System.Windows.Forms.AnchorStyles.Top Or _
System.Windows.Forms.AnchorStyles.Left Or _
System.Windows.Forms.AnchorStyles.Right
Me.groupBox1.Location = New System.Drawing.Point(16, 24)
Me.groupBox1.Size = New System.Drawing.Size(664, 128)
Me.groupBox1.Text = "System.Windows.Forms.SystemInformation"
' Set up how the form should be displayed and add the controls to the form.
Me.ClientSize = New System.Drawing.Size(696, 534)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.label9, _
Me.label8, Me.label7, Me.label6, Me.label5, Me.label4, _
Me.label3, Me.label2, Me.clearButton, Me.panel1, Me.label1, Me.groupBox1})
Me.Text = "Mouse Event Example"
' Display information about the system mouse.
label2.Text = "SystemInformation.DoubleClickSize: " + SystemInformation.DoubleClickSize.ToString()
label3.Text = "SystemInformation.DoubleClickTime: " + SystemInformation.DoubleClickTime.ToString()
label4.Text = "SystemInformation.MousePresent: " + SystemInformation.MousePresent.ToString()
label5.Text = "SystemInformation.MouseButtons: " + SystemInformation.MouseButtons.ToString()
label6.Text = "SystemInformation.MouseButtonsSwapped: " + SystemInformation.MouseButtonsSwapped.ToString()
label7.Text = "SystemInformation.MouseWheelPresent: " + SystemInformation.MouseWheelPresent.ToString()
label8.Text = "SystemInformation.MouseWheelScrollLines: " + SystemInformation.MouseWheelScrollLines.ToString()
label9.Text = "SystemInformation.NativeMouseWheelSupport: " + SystemInformation.NativeMouseWheelSupport.ToString()
End Sub 'New
Private Sub panel1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles panel1.MouseDown
' Update the mouse path with the mouse information
Dim mouseDownLocation As New Point(e.X, e.Y)
Dim eventString As String = Nothing
Select Case e.Button
Case MouseButtons.Left
eventString = "L"
Case MouseButtons.Right
eventString = "R"
Case MouseButtons.Middle
eventString = "M"
Case MouseButtons.XButton1
eventString = "X1"
Case MouseButtons.XButton2
eventString = "X2"
Case MouseButtons.None:
eventString = Nothing
End Select
If Not (eventString Is Nothing) Then
mousePath.AddString(eventString, FontFamily.GenericSerif, CInt(FontStyle.Bold), fontSize, mouseDownLocation, StringFormat.GenericDefault)
Else
mousePath.AddLine(mouseDownLocation, mouseDownLocation)
End If
panel1.Focus()
panel1.Invalidate()
End Sub
Private Sub panel1_MouseEnter(sender As Object, e As System.EventArgs) Handles panel1.MouseEnter
' Update the mouse event label to indicate the MouseEnter event occurred.
label1.Text = sender.GetType().ToString() + ": MouseEnter"
End Sub
Private Sub panel1_MouseHover(sender As Object, e As System.EventArgs) Handles panel1.MouseHover
' Update the mouse event label to indicate the MouseHover event occurred.
label1.Text = sender.GetType().ToString() + ": MouseHover"
End Sub
Private Sub panel1_MouseLeave(sender As Object, e As System.EventArgs) Handles panel1.MouseLeave
' Update the mouse event label to indicate the MouseLeave event occurred.
label1.Text = sender.GetType().ToString() + ": MouseLeave"
End Sub
Private Sub panel1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles panel1.MouseMove
' Update the mouse path that is drawn onto the Panel.
Dim mouseX As Integer = e.X
Dim mouseY As Integer = e.Y
mousePath.AddLine(mouseX, mouseY, mouseX, mouseY)
End Sub
Private Sub panel1_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles panel1.MouseWheel
' Update the drawing based upon the mouse wheel scrolling.
Dim numberOfTextLinesToMove As Integer = e.Delta * SystemInformation.MouseWheelScrollLines / 120 ' WHEEL_DATA
Dim numberOfPixelsToMove As Integer = numberOfTextLinesToMove * fontSize
If numberOfPixelsToMove <> 0 Then
Dim translateMatrix As New System.Drawing.Drawing2D.Matrix()
translateMatrix.Translate(0, numberOfPixelsToMove)
mousePath.Transform(translateMatrix)
End If
panel1.Invalidate()
End Sub
Private Sub panel1_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles panel1.MouseUp
Dim mouseUpLocation = New System.Drawing.Point(e.X, e.Y)
' Show the number of clicks in the path graphic.
Dim numberOfClicks As Integer = e.Clicks
mousePath.AddString(" " + numberOfClicks.ToString(), _
FontFamily.GenericSerif, CInt(FontStyle.Bold), _
fontSize, mouseUpLocation, StringFormat.GenericDefault)
panel1.Invalidate()
End Sub
Private Sub panel1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles panel1.Paint
' Perform the painting of the Panel.
e.Graphics.DrawPath(System.Drawing.Pens.DarkRed, mousePath)
End Sub
Private Sub clearButton_Click(sender As Object, e As System.EventArgs) Handles clearButton.Click
' Clear the Panel display.
mousePath.Dispose()
mousePath = New System.Drawing.Drawing2D.GraphicsPath()
panel1.Invalidate()
End Sub
End Class 'Form1
End Namespace
using System;
using System.Drawing;
using System.Windows.Forms;
namespace MouseEvent
{
public class Form1 : 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;
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
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.Location = new System.Drawing.Point(24, 504);
this.label1.Size = new System.Drawing.Size(392, 23);
// DoubleClickSize Label
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(24, 48);
this.label2.Size = new System.Drawing.Size(35, 13);
// DoubleClickTime Label
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(24, 72);
this.label3.Size = new System.Drawing.Size(35, 13);
// MousePresent Label
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(24, 96);
this.label4.Size = new System.Drawing.Size(35, 13);
// MouseButtons Label
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(24, 120);
this.label5.Size = new System.Drawing.Size(35, 13);
// MouseButtonsSwapped Label
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(320, 48);
this.label6.Size = new System.Drawing.Size(35, 13);
// MouseWheelPresent Label
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(320, 72);
this.label7.Size = new System.Drawing.Size(35, 13);
// MouseWheelScrollLines Label
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(320, 96);
this.label8.Size = new System.Drawing.Size(35, 13);
// NativeMouseWheelSupport Label
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(320, 120);
this.label9.Size = new System.Drawing.Size(35, 13);
// Mouse Panel
this.panel1.Anchor = ((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 = new System.Drawing.Point(16, 160);
this.panel1.Size = new System.Drawing.Size(664, 320);
this.panel1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseUp);
this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
this.panel1.MouseEnter += new System.EventHandler(this.panel1_MouseEnter);
this.panel1.MouseHover += new System.EventHandler(this.panel1_MouseHover);
this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove);
this.panel1.MouseLeave += new System.EventHandler(this.panel1_MouseLeave);
this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown);
this.panel1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseWheel);
// Clear Button
this.clearButton.Anchor = (System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right);
this.clearButton.Location = new System.Drawing.Point(592, 504);
this.clearButton.TabIndex = 1;
this.clearButton.Text = "Clear";
this.clearButton.Click += new System.EventHandler(this.clearButton_Click);
// GroupBox
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
this.groupBox1.Location = new System.Drawing.Point(16, 24);
this.groupBox1.Size = new 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 = new System.Drawing.Size(696, 534);
this.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.Text = "Mouse Event Example";
// Displays information about the system mouse.
label2.Text = "SystemInformation.DoubleClickSize: " + SystemInformation.DoubleClickSize.ToString();
label3.Text = "SystemInformation.DoubleClickTime: " + SystemInformation.DoubleClickTime.ToString();
label4.Text = "SystemInformation.MousePresent: " + SystemInformation.MousePresent.ToString();
label5.Text = "SystemInformation.MouseButtons: " + SystemInformation.MouseButtons.ToString();
label6.Text = "SystemInformation.MouseButtonsSwapped: " + SystemInformation.MouseButtonsSwapped.ToString();
label7.Text = "SystemInformation.MouseWheelPresent: " + SystemInformation.MouseWheelPresent.ToString();
label8.Text = "SystemInformation.MouseWheelScrollLines: " + SystemInformation.MouseWheelScrollLines.ToString();
label9.Text = "SystemInformation.NativeMouseWheelSupport: " + SystemInformation.NativeMouseWheelSupport.ToString();
}
private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Update the mouse path with the mouse information
Point mouseDownLocation = new Point(e.X, e.Y);
string eventString = null;
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 != null)
{
mousePath.AddString(eventString, FontFamily.GenericSerif, (int)FontStyle.Bold, fontSize, mouseDownLocation, StringFormat.GenericDefault);
}
else
{
mousePath.AddLine(mouseDownLocation,mouseDownLocation);
}
panel1.Focus();
panel1.Invalidate();
}
private void panel1_MouseEnter(object sender, System.EventArgs e)
{
// Update the mouse event label to indicate the MouseEnter event occurred.
label1.Text = sender.GetType().ToString() + ": MouseEnter";
}
private void panel1_MouseHover(object sender, System.EventArgs e)
{
// Update the mouse event label to indicate the MouseHover event occurred.
label1.Text = sender.GetType().ToString() + ": MouseHover";
}
private void panel1_MouseLeave(object sender, System.EventArgs e)
{
// Update the mouse event label to indicate the MouseLeave event occurred.
label1.Text = sender.GetType().ToString() + ": 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.X;
int mouseY = e.Y;
mousePath.AddLine(mouseX,mouseY,mouseX,mouseY);
}
private 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 = new System.Drawing.Drawing2D.Matrix();
translateMatrix.Translate(0, numberOfPixelsToMove);
mousePath.Transform(translateMatrix);
}
panel1.Invalidate();
}
private void panel1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
Point mouseUpLocation = new System.Drawing.Point(e.X, e.Y);
// Show the number of clicks in the path graphic.
int numberOfClicks = e.Clicks;
mousePath.AddString(" " + numberOfClicks.ToString(),
FontFamily.GenericSerif, (int)FontStyle.Bold,
fontSize, mouseUpLocation, StringFormat.GenericDefault);
panel1.Invalidate();
}
private void panel1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Perform the painting of the Panel.
e.Graphics.DrawPath(System.Drawing.Pens.DarkRed, mousePath);
}
private void clearButton_Click(object sender, System.EventArgs e)
{
// Clear the Panel display.
mousePath.Dispose();
mousePath = new System.Drawing.Drawing2D.GraphicsPath();
panel1.Invalidate();
}
}
}
#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
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0