Control.Capture Control.Capture Control.Capture Control.Capture Property

定义

获取或设置一个值,该值指示控件是否已捕获鼠标。Gets or sets a value indicating whether the control has captured the mouse.

public:
 property bool Capture { bool get(); void set(bool value); };
[System.ComponentModel.Browsable(false)]
public bool Capture { get; set; }
member this.Capture : bool with get, set
Public Property Capture As Boolean

属性值

如果控件已捕获鼠标,则为 true;否则为 falsetrue if the control has captured the mouse; otherwise, false.

示例

下面的代码示例演示了Capture属性。The following code example demonstrates the Capture property. 若要运行此示例,请将以下代码粘贴到包含Label已命名的 label1 ListBox的窗体中,并将两个控件命名为 listbox1 和 listbox2。To run this example paste the following code in a form containing a Label named label1 and two ListBox controls named listbox1 and listbox2. 在此示例中,确保MouseDown窗体和控件的事件与方法相关联。Ensure the form and controls' MouseDown event is associated with the method in this example.

// This method handles the mouse down event for all the controls on the form.  
// When a control has captured the mouse
// the control's name will be output on label1.
void Control_MouseDown( System::Object^ sender,
   System::Windows::Forms::MouseEventArgs^ /*e*/ )
{
   Control^ control = (Control^)(sender);
   if ( control->Capture )
   {
      label1->Text = control->Name + " has captured the mouse";
   }
}
// This method handles the mouse down event for all the controls on the form.  
// When a control has captured the mouse
// the control's name will be output on label1.
private void Control_MouseDown(System.Object sender, 
    System.Windows.Forms.MouseEventArgs e)
{
    Control control = (Control) sender;
    if (control.Capture)
    {
        label1.Text = control.Name+" has captured the mouse";
    }
}
'This method handles the mouse down event for all the controls on the form.  When a control has
'captured the mouse, the control's name will be output on label1.
Private Sub Control_MouseDown(ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown, _
    label1.MouseDown, listbox1.MouseDown, listbox2.MouseDown
    Dim control As Control = CType(sender, Control)
    If (control.Capture) Then
        label1.Text = control.Name & " has captured the mouse"
    End If
End Sub

注解

当控件已捕获鼠标时,它将接收鼠标输入,无论光标是否在其边框内。When a control has captured the mouse, it receives mouse input whether or not the cursor is within its borders. 通常仅在拖动操作期间捕获鼠标。The mouse is typically only captured during drag operations.

只有前景窗口才能捕获鼠标。Only the foreground window can capture the mouse. 当后台窗口尝试执行此操作时,窗口仅接收鼠标光标位于窗口可见部分内时发生的鼠标事件的消息。When a background window attempts to do so, the window receives messages only for mouse events that occur when the mouse cursor is within the visible portion of the window. 此外,即使前景窗口已捕获鼠标,用户仍可以单击其他窗口,使其成为前台。Also, even if the foreground window has captured the mouse, the user can still click another window, bringing it to the foreground.

捕获鼠标时,快捷键不起作用。When the mouse is captured, shortcut keys should not work.

安全性

UIPermission
适用于所有窗口设置此属性值。for all windows to set this property value. 关联的枚举:AllWindowsAssociated enumeration: AllWindows

适用于

另请参阅