C#将gridview中的数据传输到文本框

时间:2015-10-21 11:17:50

标签: c#

我已经阅读了很多关于此按钮的文章和教程,每次尝试都不起作用。我在gridview内点击,textboxes只是不填充。以下是我尝试过的两个例子。

        private void GridView01_MouseClick(object sender, MouseEventArgs e)
    {
        personIDTextBox.Text = GridView01.SelectedRows[0].Cells[0].Text.ToString();

        comboBox1.Text = GridView01.SelectedRows[0].Cells[1].Text.ToString();
        Txt_FirstName.Text = GridView01.SelectedRows[0].Cells[2].Text.ToString();
        mIDDLENAMETextBox.Text = GridView01.SelectedRows[0].Cells[3].Text.ToString();
    }
  

错误CS1061'DataGridViewCell'不包含的定义   '文字',没有扩展方法'文字'接受第一个参数   可以找到类型'DataGridViewCell'(你错过了使用   指令或汇编参考?

2 个答案:

答案 0 :(得分:1)

FYI展望未来,如果继续使用StackOverflow,您应该确保包含WinForms,WPF或ASP.NET的标记(或者至少在帖子中指定它),并确保指出完整类型您正在使用的控件。您使用了DataGridView,但是将其命名为GridView01,这会让我们感到困惑,因为WinForms DataGridView controlASP.NET GridView control具有与之关联的不同属性和方法。因此,一个人建议的答案可能无效,因为他们误将您的控制误认为是另一个人。我在原始帖子的评论中链接的另一个StackOverflow问题是ASP.NET GridView控件,这就是为什么我们认为您应该访问Text属性。只有声明它实际为DataGridView的错误消息才能确定您实际使用哪个控件;)

无论如何,我创建了一个小的WinForms应用程序,只有DataGridViewTextbox控件。在我的Form_Load事件中,我向我的DataGridView添加了一些包含文本数据的行,如下所示:

private void Form1_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 10; i++)
    {
        DataGridViewRow dgvr = (DataGridViewRow)dataGridView1.Rows[0].Clone();

        for (int j = 0; j < 3; j++)
        {
            switch j)
            {
                case 0:
                    dgvr.Cells[j].Value = "A - " + i;
                    break;
                case 1:
                    dgvr.Cells[j].Value = "B - " + i;
                    break;
                case 2:
                    dgvr.Cells[j].Value = "C - " + i;
                    break;
            }

        }

        dataGridView1.Rows.Add(dgvr);
    }
}

你当然不需要这样做,我只是告诉你我做了什么,所以没有任何谜团。

然后我向SelectionChanged控件添加了DataGridView个事件。我似乎没有可用的Mouse_Click事件,因此我在属性表中设置了myDataGridView.SelectionMode = FullRowSelect。这使得您无法选择单个单元格,而是单击单元格选择整个行。这保证了* SelectedRows属性中的某些内容。

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    if (dataGridView1.SelectedRows.Count > 0)
    {
        textBox1.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
    }
}

这正确地将所选行中第一个单元格的值转储到我的文本框中:

enter image description here

然后您需要做的就是设置哪个文本框使用哪个单元格索引。

修改:示例&#39;立即窗口&#39;输出;

enter image description here

编辑2:确保应用程序正在运行,设置断点,在DataGridView中选择一个新行,然后在即时窗口中输入该行,如下所示:{{ 3}}

答案 1 :(得分:0)

   private void GridView01_MouseClick(object sender, MouseEventArgs e)
    {
 personIDTextBox.Text = GridView01.SelectedRows[0].Cells[0].Text;

        comboBox1.Text = GridView01.SelectedRows[0].Cells[1].Text;
        Txt_FirstName.Text = GridView01.SelectedRows[0].Cells[2].Text;
        mIDDLENAMETextBox.Text = GridView01.SelectedRows[0].Cells[3].Text;
 }

只需使用此代码替换即可。