2010-11-26 18 views
1

1つのMDI子フォームの1つのボタンから別のMDI子フォームの別のボタンに簡単なドラッグアンドドロップ操作を実行しようとしています。何らかの理由で、一方のボタンを他方のボタンにドラッグしようとすると、DragDropイベントが起きることはありません。ボタンをドラッグするとカーソルが黒いキャンセルアイコンになることは注目に値するかもしれません。MDI子フォーム間でnドロップ操作をドラッグします

マイコード:

#region ActivatesDragDropControl 
    [DllImport ("user32.dll")] 
    public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); 

    private const int WM_NCACTIVATE = 0x0086; 
    #endregion 
    private void button1_MouseDown(object sender, MouseEventArgs e) 
    { 
     DoDragDrop(LocationNode, DragDropEffects.Link); 
     // to deactivate 
     SendMessage(Handle, WM_NCACTIVATE, 0, 0); 
    } 
    private void button1_DragDrop(object sender, DragEventArgs e) 
    { 
     //never gets here... 
    } 
    private void button1_DragEnter(object sender, DragEventArgs e) 
    { 
     // to activate 
     SendMessage(Handle, WM_NCACTIVATE, 1, 0); 
    } 
+0

これはどの言語ですか? –

+0

C#(特別追加料金) –

答えて

1

OKだから、もう少しとDragEnterイベントが十分ではありません使用して周りを果たしました。私はDragEventArgsのイベント値を設定しなければなりませんでした。私の場合:

e.Effect = DragDropEffects.Link;