0
我對Windows窗體datagridview的拖放行爲有疑問。 在我的場景中,用戶必須從datagridview拖放單行並將其放入列表視圖中。 當我啓動應用程序時,這工作正常,但我刪除了一行後,我必須點擊兩次到datagridview,然後我不得不點擊第三次做一個拖放操作。 這不是userfriendly。 如何在拖拽拖放操作後實現下一步拖拽而不必點擊datagridview? (點擊並按住mousebutton最後拖放後,只需點擊一次下降)C#DataGridView拖放行爲?
這裏是一個示例代碼:
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
dataGridView1.DoDragDrop(dataGridView1.SelectedRows, DragDropEffects.Move);
dataGridView1.Focus();
dataGridView1.CurrentCell = dataGridView1.SelectedRows[0].Cells[0];
}
private void listBox1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void listBox1_DragDrop(object sender, DragEventArgs e)
{
MessageBox.Show(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
}
我已經嘗試過用datagridview1.Focus(解決這個問題),但它不沒有幫助。
更多信息: Datagridview設置爲只讀,多選禁用和fullrowselection。
謝謝!
您的拖放不是從用戶拖動行開始的,而是隻需單擊任意鼠標按鈕。這意味着當你回到它時,這些第一次點擊開始DD操作,而不是選擇一行等。此外,你似乎拖動*所有*選定的行,但只是拖動一個。 – Plutonix
是的,這是真的,但SelectedRows只能保持行,因爲multiselect關閉。 當我回到datagridview選擇一行並通過一次單擊就可以啓動draganddrop時,可以嗎? – user3070641