Control.GiveFeedback イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ドラッグ操作中に発生します。
public:
event System::Windows::Forms::GiveFeedbackEventHandler ^ GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler? GiveFeedback;
member this.GiveFeedback : System.Windows.Forms.GiveFeedbackEventHandler
Public Custom Event GiveFeedback As GiveFeedbackEventHandler
イベントの種類
例
次のコード例は、2 つの ListBox コントロール間のドラッグ アンド ドロップ操作を示しています。 この例では、ドラッグ アクションの DoDragDrop 開始時に メソッドを呼び出します。 ドラッグ アクションは、イベント中にマウスの位置からマウスが移動 SystemInformation.DragSize した場合に MouseDown 開始されます。 メソッドは IndexFromPoint 、イベント中にドラッグする項目のインデックスを決定するために使用されます MouseDown
。
この例では、ドラッグ アンド ドロップ操作にカスタム カーソルを使用する方法も示します。 この例では、 3dwarro.cur
カスタム ドラッグ カーソルと 3dwno.cur
ドロップなしカーソルに対して、それぞれ 2 つのカーソル ファイル と がアプリケーション ディレクトリに存在する必要があります。 がオンになっている場合 UseCustomCursorsCheck
CheckBox は、カスタム カーソルが使用されます。 カスタム カーソルは、イベント ハンドラーで GiveFeedback 設定されます。
キーボードの状態は、 の右側ListBox
のDragOverイベント ハンドラーで評価され、Shift キー、Ctrl キー、Alt キー、または Ctrl + Alt キーの状態に基づいてドラッグ操作が決定されます。 ドロップが発生する ListBox
場所もイベント中に DragOver
決定されます。 削除するデータが でないString
場合は、 で DragDropEffectsが DragEventArgs.Effect にNone
設定されます。 最後に、ドロップの状態が に DropLocationLabel
Label表示されます。
右側 ListBox
にドロップするデータはイベント ハンドラーで DragDrop 決定され、 String
値は 内の適切な場所に ListBox
追加されます。 ドラッグ操作がフォームの境界外に移動した場合、ドラッグ アンド ドロップ操作はイベント ハンドラーで QueryContinueDrag 取り消されます。
このコードの抜粋は、 イベントの使用を GiveFeedback 示しています。 完全な 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
注釈
このイベントは GiveFeedback 、ドラッグ アンド ドロップ操作が開始されると発生します。 イベントを GiveFeedback 使用すると、ドラッグ イベントのソースは、ドラッグ アンド ドロップ操作中にユーザーに視覚的なフィードバックを提供するために、マウス ポインターの外観を変更できます。
ドラッグ アンド ドロップ操作関連のイベントがどのように、いつ発生するかについて次に示します。
メソッドは DoDragDrop 、現在のカーソル位置の下のコントロールを決定します。 次に、コントロールが有効なドロップ ターゲットであるかどうかを確認します。
コントロールが有効なドロップ ターゲットの場合、 GiveFeedback ドラッグ アンド ドロップ効果を指定してイベントが発生します。 ドラッグ アンド ドロップ効果の一覧については、DragDropEffects 列挙体を参照してください。
マウス カーソルの位置、キーボードの状態、およびマウス ボタンの状態の変更が監視されます。
ユーザーがウィンドウの外に移動した場合、DragLeave イベントが生成されます。
マウスが別のコントロールに移動した場合は、そのコントロールの DragEnter が生成されます。
マウスが移動しても同じコントロール内の場合は、DragOver イベントが生成されます。
キーボードまたはマウス ボタンの状態が変更された場合、イベントが発生し、QueryContinueDragドラッグを続行するか、データをドロップするか、イベントQueryContinueDragEventArgsの の プロパティの値に基づいて操作をAction取り消すかが決定されます。
の DragAction 値が
Continue
の場合、操作を DragOver 続行するためにイベントが発生し、 GiveFeedback 適切な視覚的フィードバックを設定できるように、新しい効果でイベントが発生します。 有効なドロップ効果の一覧については、DragDropEffects 列挙体を参照してください。注意
DragOverイベントと GiveFeedback イベントはペアになっているため、マウスがドロップ ターゲットを移動すると、ユーザーにはマウスの位置に関する最新のフィードバックが表示されます。
の DragAction 値が
Drop
の場合、ドロップ効果の値がソースに返されるため、ソース アプリケーションはソース データに対して適切な操作を実行できます。たとえば、操作が移動の場合はデータを切り取ります。の値が のDragAction
Cancel
場合、イベントが発生しますDragLeave。
イベントの処理の詳細については、「処理とイベントの発生」を参照してください。
適用対象
こちらもご覧ください
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示