c# winform dataGridView鼠标拖拽到textBox里显示数据,鼠标拖动

问题描述:我现在想拖动dataGridView里的数据到textBox里

首先窗体名字为Form1

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

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

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这个名称

再在代码里写上

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

 然后找到textBox1的DragDrop事件

写上相应的代码

 

 

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事件

 

 

写上代

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里

 

黑色头发  http://heisetoufa.iteye.com

你可能感兴趣的:(数据结构,C++,c,C#,WinForm)