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

智者知已应修善业 2011-12-18 12:03:56
网路上找了不少,试用都不行,给出示例代码
...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn_aspnet 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里


  • 打赏
  • 举报
回复
首先找到的就是这个,不要读列名,要单元格的内容到文本框

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧