GiveFeedbackEventArgs.Effect 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得顯示的拖放作業意見反應。
public:
property System::Windows::Forms::DragDropEffects Effect { System::Windows::Forms::DragDropEffects get(); };
public System.Windows.Forms.DragDropEffects Effect { get; }
member this.Effect : System.Windows.Forms.DragDropEffects
Public ReadOnly Property Effect As DragDropEffects
屬性值
其中一個 DragDropEffects 值。
範例
下列範例示範兩個 ListBox 控件之間的拖放作業。 範例會在拖曳動作啟動時呼叫 DoDragDrop 方法。 如果滑鼠在 MouseDown 事件期間已從滑鼠位置移動超過 SystemInformation.DragSize,則拖曳動作會啟動。
IndexFromPoint 方法可用來判斷專案在 MouseDown 事件期間要拖曳的專案索引。
此範例也會示範如何針對拖放作業使用自定義數據指標。 此範例假設應用程式目錄中有兩個數據指標檔案,3dwarro.cur 和 3dwno.cur,分別存在於自定義拖放數據指標中。 檢查 UseCustomCursorsCheckCheckBox 時,將會使用自定義數據指標。 自訂數據指標會在 GiveFeedback 事件處理程序中設定。
鍵盤狀態會在右側 ListBox的 DragOver 事件處理程式中評估,以判斷拖曳作業會根據 SHIFT、CTRL、ALT 或 CTRL+ALT 鍵的狀態而定。 在 DragOver 事件期間,也會決定 ListBox 中發生卸除的位置。 如果要卸除的資料不是 String,則 DragEventArgs.Effect 會設定為 DragDropEffects.None。 最後,卸除的狀態會顯示在 DropLocationLabelLabel中。
要卸除右側 ListBox 的數據會決定在 DragDrop 事件處理程式中,且 String 值會在 ListBox的適當位置新增。 如果拖曳作業在窗體界限之外移動,則會在 QueryContinueDrag 事件處理程式中取消拖放作業。
此程式代碼摘錄示範如何使用 GiveFeedbackEventArgs 類別。 如需完整的程式代碼範例,請參閱 DoDragDrop 方法。
void ListDragSource_GiveFeedback( Object^ /*sender*/, System::Windows::Forms::GiveFeedbackEventArgs^ e )
{
// Use custom cursors if the check box is checked.
if ( UseCustomCursorsCheck->Checked )
{
// Sets the custom cursor based upon the effect.
e->UseDefaultCursors = false;
if ( (e->Effect & DragDropEffects::Move) == DragDropEffects::Move )
::Cursor::Current = MyNormalCursor;
else
::Cursor::Current = MyNoDropCursor;
}
}
private void ListDragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
// Use custom cursors if the check box is checked.
if (UseCustomCursorsCheck.Checked)
{
// Sets the custom cursor based upon the effect.
e.UseDefaultCursors = false;
if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move)
Cursor.Current = MyNormalCursor;
else
Cursor.Current = MyNoDropCursor;
}
}
Private Sub ListDragSource_GiveFeedback(ByVal sender As Object, ByVal e As GiveFeedbackEventArgs) Handles ListDragSource.GiveFeedback
' Use custom cursors if the check box is checked.
If (UseCustomCursorsCheck.Checked) Then
' Set the custom cursor based upon the effect.
e.UseDefaultCursors = False
If ((e.Effect And DragDropEffects.Move) = DragDropEffects.Move) Then
Cursor.Current = MyNormalCursor
Else
Cursor.Current = MyNoDropCursor
End If
End If
End Sub