나는 Windows Forms DataGridview의 끌어서 놓기 동작에 대한 질문이 있습니다. 필자의 시나리오에서는 사용자가 단일 행을 DataGridview에서 끌어서 목록보기에 놓아야합니다. 응용 프로그램을 시작할 때이 잘 작동하지만 한 행을 삭제 한 후 두 번 클릭하여 datagridview 클릭 한 다음 끌어서 놓기 작업을 세 번째 시간을 클릭해야합니다. 이것은 사용자 친화적 인 것이 아닙니다. 드래그 앤 드롭 작업 후에 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는 다중 선택이 해제되어 있기 때문에 Row를 보유 할 수 있습니다. 한 번의 클릭으로 행을 선택하고 draganddrop을 시작하려면 datagridview로 돌아갈 수 있습니까? – user3070641