簡體   English   中英

拖放時如何保留按鈕單擊功能?

[英]How to preserve button-click functionality when dragging & dropping?

我有一個 FlowLayoutPanel,里面有幾個按鈕,單擊它們會啟動程序。 我希望能夠重新排列此 FlowLayoutPanel 中的按鈕,因此我嘗試為按鈕實現拖放功能。

我在運行時使用以下代碼將按鈕添加到 FlowLayoutPanel:

button.Click += delegate ( object sender, EventArgs e ) {
   Process.Start( someExePath );
};

button.MouseDown += delegate ( object sender, MouseEventArgs e ) {
   button.DoDragDrop( button, DragDropEffects.Move );
};

一旦我將 MouseDown 委托添加到按鈕,我就不能再按下按鈕來啟動應用程序,而是開始拖放。 我如何解決它? 我的主要目標是能夠重新排列 FlowLayoutPanel 內的按鈕(最好通過拖放操作),同時仍然能夠通過單擊這些按鈕來啟動應用程序。

我會嘗試 MouseMove 事件:

private void button_MouseMove(object sender, MouseEventArgs e)
{
  if (e.Button == MouseButtons.Left)
  {
    button.DoDragDrop(button, DragDropEffects.Move);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM