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