我在里面有一個主表單我正在使用datagridview,我也在使用datagridview的拖放事件將檔案拖放到我的datagrdiview中,一旦我將檔案拖放到datagridview中,另一個表單顯示選擇用戶想要的資料顯示和排列資料..等
當我的第二個表單顯示時,我希望它的焦點與此代碼的效果完全相同,這child.ShowDialog();意味著用戶在完成此表單之前無法單擊主表單
但是如果我在 DragDrop 事件的中間使用上面的代碼,主表單外的滑鼠游標將產生效果,DragDropEffects.Copy;甚至我從凍結中拖動檔案的檔案夾也會凍結,直到我關閉第二個表單
我理解這種情況的發生,因為ShowDialog()這是我的拖放事件代碼。
private void dataGridView1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void dataGridView1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
Form2 child = new Form2();
child.ShowDialog();
}
}
我的問題是:是否有任何后拖放事件,所以一旦用戶釋放滑鼠并且我從拖放操作中獲取檔案名,那么我可以顯示 form2?
這是我的應用程式外的游標影像。

編輯: 根據 Jimi 的評論,使用 BeginInvoke() 解決了這個問題。這是我使用的確切代碼
this.BeginInvoke((Func<DialogResult>)(() => child.ShowDialog()));
uj5u.com熱心網友回復:
根據 Jimi 的評論,使用 BeginInvoke() 解決了這個問題。這是我使用的確切代碼
this.BeginInvoke((Func<DialogResult>)(() => child.ShowDialog()));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/513903.html
上一篇:讀取和寫入不帶節的INI檔案
