C# 将DataGridView值复制到TextBox

C# 将DataGridView值复制到TextBox,c#,winforms,datagridview,C#,Winforms,Datagridview,我试图得到一个答案,但到目前为止,没有任何帮助能够做到我想要的 我有一段代码,它是用来查看所选行并将其列输出到相应的文本框中 private void DataGridView01_SelectionChanged(object sender, EventArgs e) { if (DataGridView01.SelectedRows.Count > 0) { personIDTextBox.Text = DataGridView01.SelectedR

我试图得到一个答案,但到目前为止,没有任何帮助能够做到我想要的

我有一段代码,它是用来查看所选行并将其列输出到相应的文本框中

 private void DataGridView01_SelectionChanged(object sender, EventArgs e)
 {
    if (DataGridView01.SelectedRows.Count > 0)
    {
       personIDTextBox.Text = DataGridView01.SelectedRows[0].Cells[0].Value.ToString();
       comboBox1.Text = DataGridView01.SelectedRows[0].Cells[1].Value.ToString();
       Txt_FirstName.Text = DataGridView01.SelectedRows[0].Cells[2].Value.ToString();
       mIDDLENAMETextBox.Text = DataGridView01.SelectedRows[0].Cells[3].Value.ToString();
       sURNAMETextBox.Text = DataGridView01.SelectedRows[0].Cells[4].Value.ToString();
       cITYTextBox.Text = DataGridView01.SelectedRows[0].Cells[5].Value.ToString();
       eMAILTextBox.Text = DataGridView01.SelectedRows[0].Cells[6].Value.ToString();
     }
  }

当我启动程序时,我没有收到任何错误,但它不会将数据输出到文本框中。有人知道我做错了什么吗?

在尝试从datagridview获取数据时,我使用了一种稍微不同的方法

尝试执行
personIDTextBox.Text=DataGridView01.SelectedCells[0].Value.ToString()

但切换到
CellClick
并将datagridview行选择属性的属性更改为full row select,而不是更改选择上的事件。之后,您可以更改所选单元格[0]
编号,以匹配所需的单元格

连接事件:

这是您需要学习在VS中编码的最基本的东西。简而言之,这意味着事件名称(此处
DataGridView01\u SelectionChanged
已连接到事件。为此,可以使用代码,也可以将其插入属性选项卡的事件窗格的正确插槽中。选择
DataGridView
,打开事件窗格(带有闪存的窗格)并找到SelectionChanged事件!在这里插入事件的名称,您就完成了

(我只安装了VS的德语版本….)

结果反映在form_designer.cs文件中,与双击该点,然后填充生成的代码存根相同(相反)


控件有许多事件;一个是默认事件,它可以通过在设计器中双击控件本身来生成。但最终您将需要所有3种方法来生成连接事件(以及有时删除它们)。

如果您想将datagridview所选行显示到相应的文本框中,请完成以下步骤

第1步: 1.在DataGridView属性中将DataGridView选择模式更改为FullRowSelect。 2.使用属性在数据网格视图中创建单元格单击事件。 3.编写下面的代码并进行测试,可能会有所帮助

private void DataGridView01_CellClick(object sender,DataGridViewCellEventArgs e)
{
if (DataGridView01.Rows.Count > -1)
{
PersonIdTextBox.Text=DataGridView01.Rows[e.RowIndex].Cells[0].Value.ToString();
comboBox1.Text = DataGridView01.Rows[e.RowIndex].Cells[1].Value.ToString();
Txt_FirstName.Text = DataGridView01.Rows[e.RowIndex].Cells[2].Value.ToString();
 mIDDLENAMETextBox.Text = DataGridView01.Rows[e.RowIndex].Cells[3].Value.ToString();
sURNAMETextBox.Text = DataGridView01.Rows[e.RowIndex].Cells[4].Value.ToString();
cITYTextBox.Text = DataGridView01.Rows[e.RowIndex].Cells[5].Value.ToString();
eMAILTextBox.Text = DataGridView01.Rows[e.RowIndex].Cells[6].Value.ToString();

}
}

您确实选择了一行,对吗?-另外:代码中似乎有一对多的卷曲;ae您确定它如所写??您是否设置了断点以查看DataGridView01.SelectedRows.Count的值?@TaW是的,我确实选择了一行。。。。。。。我已经设置了一个断点并尝试测试它,但它只是说“DataGridView01名称在当前上下文中不存在。听起来很可疑!如果没有编译器的抱怨,那怎么可能呢。。??第一个断点应位于if@TaW我不确定,我对C#和visualstudio相当陌生。额外的卷曲只是复制粘贴错误。我不知道我做错了什么。我读到的每一篇文章都说这个代码应该可以工作。断点位于if上。感谢您的帮助,但我发现DataGridView不包含SelectedCell的定义。很抱歉,我刚刚在我编写的内容中发现了一个输入错误-
SelectedCells[0]
是方法(复数,非单数)。回答更新嗯,我不确定事件窗格在哪里?我试过寻找,但我没有看到一个带有黄色闪光灯的。它是一个窗格以及属性窗格,通常位于右侧底部,并且闪光灯在所有VS版本中都不是黄色的,请参见屏幕截图!谢谢你,这正在起作用。我只是好奇为什么教程不包括这一点?我读过20多本不同的书,从来没有遇到过这样的问题。现在我很好奇如何用正确的选项填充组合框,因为它是“DrowDownList”。这是一个新问题;像往常一样,先在谷歌上搜索并阅读一些答案;尝试一点代码,如果你没有成功,什么时候写一个新问题!