Control.MouseCaptureChanged 事件

定义

当控件失去鼠标捕获时发生。

public:
 event EventHandler ^ MouseCaptureChanged;
public event EventHandler MouseCaptureChanged;
public event EventHandler? MouseCaptureChanged;
member this.MouseCaptureChanged : EventHandler 
Public Custom Event MouseCaptureChanged As EventHandler 

事件类型

示例

下面的代码示例演示 MouseCaptureChanged 控件的 Button 事件。

private void button1_MouseDown(object sender, MouseEventArgs e)
{
    System.Diagnostics.Debug.WriteLine("button1_MouseDown");
}

private void button1_MouseUp(object sender, MouseEventArgs e)
{
    System.Diagnostics.Debug.WriteLine("button1_MouseUp");
}

private void button1_MouseCaptureChanged(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("button1_MouseCaptureChanged");
}
Private Sub Button1_MouseDown(ByVal sender As System.Object, _
ByVal e As MouseEventArgs) Handles Button1.MouseDown
    Debug.WriteLine("Button1_MouseDown")
End Sub

Private Sub Button1_MouseUp(ByVal sender As System.Object, _
ByVal e As MouseEventArgs) Handles Button1.MouseUp
    Debug.WriteLine("Button1_MouseUp")
End Sub

Private Sub Button1_MouseCaptureChanged(ByVal sender As System.Object, _
ByVal e As EventArgs) Handles Button1.MouseCaptureChanged
    Debug.WriteLine("Button1_MouseCaptureChanged")
End Sub

若要测试此示例,请通过按 F5 在调试器中运行它。 在 Visual Studio 中打开 “输出 ”窗口,以便查看何时引发事件。 单击 并 Button 注意以下输出。

button1_MouseDown

button1_MouseUp

button1_MouseCaptureChanged

现在,单击并按住控件上的 Button 鼠标左键。 在仍单击鼠标的同时,按 Alt+Tab 切换到另一个程序。 请注意,引发 MouseCaptureChanged 事件,使你能够处理此方案。 根据操作, MouseUp 可能不会引发事件。 还可以使用 Windows 键或 Ctrl+ESC 尝试此测试。

button1_MouseDown

button1_MouseCaptureChanged

注解

在极少数情况下,可能需要检测意外输入。 例如,请考虑以下方案。

  • 在鼠标操作期间,用户通过按 Windows 键或 Ctrl+ESC 打开“开始”菜单。

  • 在鼠标操作期间,用户通过按 Alt+TAB 切换到另一个程序。

  • 在鼠标操作期间,另一个程序显示一个窗口或一个消息框,该窗口或消息框将焦点从当前应用程序移开。

鼠标操作可以包括单击并按住窗体或控件上的鼠标,或执行鼠标拖动操作。 如果必须检测窗体或控件何时在这些和相关意外情况下丢失鼠标捕获,则可以使用 MouseCaptureChanged 事件。

适用于