gpt4 book ai didi

c# - 使用 C# Windows 窗体应用程序在 datagridview 中拖放

转载 作者:行者123 更新时间:2023-11-30 21:54:06 27 4
gpt4 key购买 nike

这是我的项目。为此,我需要将数据从 listBox 拖放到 datagridview 单元格中。因为我需要让消息框包含删除的行 phone_number。

我完成了拖放选项,但我不知道如何获取带有拖放行 phone_number 的消息框。

我将我的数据 GridView 和列表框连接到数据库

我的编码是:

    private void listBox3_MouseDown(object sender, MouseEventArgs e)
{
listBox3.DoDragDrop(listBox3.SelectedItem, DragDropEffects.Copy);
}
private void dataGridView1_DragEnter_1(object sender, DragEventArgs e)
{

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

if (e.Data.GetDataPresent(typeof(string)))
{
string dgv = dataGridView1.Columns[4].HeaderText == "phone_number" && is string;
MessageBox.Show("data is "+ dgv);
}
}

我试了很多但还是不行。请帮我编码。

最佳答案

我想你的 Listbox.Items 包含一个字符串列表,如果是这种情况,那么你就错过了一个调用来有效地检索从你的列表框中拖动的数据并显示该数据,而不是网格标题的内容

private void dataGridView1_DragDrop_1(object sender, DragEventArgs e)
{

if (e.Data.GetDataPresent(typeof(string)))
{
string item = (string)e.Data.GetData(typeof(System.String));
MessageBox.Show("data is "+ item);

}
}

现在,如果我理解您要实现的目标,您想要设置拖放单元格的内容,但前提是该单元格列的标题为“phone_number”。

在这种情况下,您必须将 DragDrop 事件中传递的光标坐标转换为相对于网格的坐标。之后,您应该使用网格的 HitTest 方法向网格询问单击了什么元素。如果它是一个单元格,您可以很容易地发现该单元格是否属于所需的列。

private void dataGridView1_DragDrop_1(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(string)))
{
DataGridView dgv = sender as DataGridView;
string item = (string)e.Data.GetData(typeof(System.String));

// Conversion in coordinates relative to the data
Point clientPoint = dgv.PointToClient(new Point(e.X, e.Y));

// get the element under the drop coordinates
DataGridView.HitTestInfo info = dgv.HitTest(clientPoint.X, clientPoint.Y);

// If it is a cell....
if (info.Type == DataGridViewHitTestType.Cell)
{
// and its column's header is the required one....
if(dgv.Columns[info.ColumnIndex].HeaderText == "phone_number")
dgv.Rows[info.RowIndex].Cells[info.ColumnIndex].Value = item;
}
}
}

关于c# - 使用 C# Windows 窗体应用程序在 datagridview 中拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33449733/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com