MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Перенести путь файла в dataGridView через жесты"
Answer 884755
Установите свойство AllowDrop и обработайте события DragEnter и DragDrop:
public Form1() { InitializeComponent(); dataGridView1.AllowDrop = true; dataGridView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.DataGridView_DragDrop); dataGridView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.DataGridView_DragEnter); } private void DataGridView_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.Copy; } private void DataGridView_DragDrop(object sender, DragEventArgs e) { object val; string filepath = ""; bool found = false; //получаем список форматов DragAndDrop IDataObject data = e.Data; string[] formats = data.GetFormats(); //найдем в форматах данные Проводника foreach (var fmt in formats) { //Проводник передает перетаскиваемый файл в виде форматов FileDrop и/или FileNameW, //данными для которых является строка или массив строк if (fmt == "FileDrop" || fmt == "FileNameW") { val = data.GetData(fmt); if (val == null) continue; if (val is string) { filepath = val as string; found = true; break; } else if (val is string[]) { string[] array = val as string[]; if (array.Length > 0) { filepath = array[0]; found = true; break; } } } } if (!found) return; //ничего не найдено //добавляем в DataGridView DataGridViewCell cell = new DataGridViewTextBoxCell(); cell.Value = filepath; DataGridViewRow row = new DataGridViewRow(); row.Cells.Add(cell); dataGridView1.Rows.Add(row); }
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.