+ -
当前位置:首页 → 问答吧 → DataGridView单元格内容拖放到文本框

DataGridView单元格内容拖放到文本框

时间:2011-12-18

来源:互联网

网路上找了不少,试用都不行,给出示例代码

作者: xianfajushi   发布时间: 2011-12-18

datagridview 鼠标拖拽 textbox 问题描述:我现在想拖动dataGridView里的数据到textBox里

首先窗体名字为Form1

拖个dataGridView和个textBox到窗体,她们分别叫dataGridView1和textBox1

然后双击窗体,在加载窗体时显示dataGridView的数据

C#代码 
private void Form1_Load(object sender, EventArgs e)  
{  
  // TODO: 这行代码将数据加载到表“dataSet1.Employees”中。您可以根据需要移动或移除它。  
  //this.employeesTableAdapter.Fill(this.dataSet1.Employees);  
  this.dataGridView1.Columns.Add("heisetoufa", "heisetoufa");  
  this.dataGridView1.Columns.Add("zisetoufa", "zisetoufa");  
  this.dataGridView1.Rows.Add("heise", "toufa");  
  this.dataGridView1.Rows.Add("zise", "toufa");  
}  

private void Form1_Load(object sender, EventArgs e)
{
  // TODO: 这行代码将数据加载到表“dataSet1.Employees”中。您可以根据需要移动或移除它。
  //this.employeesTableAdapter.Fill(this.dataSet1.Employees);
  this.dataGridView1.Columns.Add("heisetoufa", "heisetoufa");
  this.dataGridView1.Columns.Add("zisetoufa", "zisetoufa");
  this.dataGridView1.Rows.Add("heise", "toufa");
  this.dataGridView1.Rows.Add("zise", "toufa");
}
然后找到dataGridView1的事件中的CellMouseDown事件,在事件名里填上dataGridView1_CellMouseDown这个名称

再在代码里写上

C#代码 
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)  
{  
  dataGridView1.DoDragDrop(e.ColumnIndex, DragDropEffects.Copy);  
}  

private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
  dataGridView1.DoDragDrop(e.ColumnIndex, DragDropEffects.Copy);
}
然后找到textBox1的DragDrop事件

写上相应的代码



C#代码 
private void textBox1_DragDrop(object sender, DragEventArgs e)  
{  
  int index = -1;  
  if (e.Data.GetDataPresent(typeof(int)))  
  {  
  index = (int)e.Data.GetData(typeof(int));  
  }  
  if (index > -1)  
  textBox1.Text = dataGridView1.Columns[index].Name;  
}  

private void textBox1_DragDrop(object sender, DragEventArgs e)
{
  int index = -1;
  if (e.Data.GetDataPresent(typeof(int)))
  {
  index = (int)e.Data.GetData(typeof(int));
  }
  if (index > -1) 
  textBox1.Text = dataGridView1.Columns[index].Name;
}





最后再找到textBox的DragEnter事件



写上代 

C#代码 
private void textBox1_DragEnter(object sender, DragEventArgs e)  
{  
  if (e.Data.GetDataPresent(typeof(int)))  
  {  
  e.Effect = DragDropEffects.Copy;  
  }  
  else  
  e.Effect = DragDropEffects.None;  
}  

private void textBox1_DragEnter(object sender, DragEventArgs e)
{
  if (e.Data.GetDataPresent(typeof(int)))
  {
  e.Effect = DragDropEffects.Copy;
  }
  else
  e.Effect = DragDropEffects.None;
}




到此可以实现鼠标从dataGridView1拖拽数据到textBox里把dataGridView1的列表头显示在textBox里
 

作者: hefeng_aspnet   发布时间: 2011-12-18