按钮点击填写多个文本框

时间:2011-05-26 06:03:11

标签: c# .net sql-server winforms textbox

我有两个winforms,Form1& Form2,在form1上我有一个按钮,当点击时打开Form2作为对话框,我使用f2.ShowDialog()方法。现在,我希望当form2打开时,所有文本框控件都填充了一些指定的文本,这些文本是从sql表中提取的,或者是从form1上的datagridview中提取的。对于这个使用:

f2.Controls["StudentName"].Text= datagridview1.SelectedCells[0].Value.ToString();
f2.Controls["StudentClass"].Text= datagridview1.SelectedCells[1].Value.ToString();
f2.Controls["StudentSection"].Text= datagridview1.SelectedCells[2].Value.ToString();
f2.Controls["StudentMobile"].Text= datagridview1.SelectedCells[3].Value.ToString();

但是,这似乎不太好,因为我在form2上有10个文本框控件,所以这不是一种编程方式....请指导我一些有效的方法。

3 个答案:

答案 0 :(得分:2)

您可以将相应的标记添加到gridview单元格,因此 datagridview1.SelectedCells [0] .Tag 应为“StudentName”。
然后你可以:

foreach(var cell in datagridview1.SelectedCells){
   try
   {
       f2.Controls[(string)cell.Tag].Text= cell.Text;
   }
   catch
   {
        //Whatever you want
   }
}

或者您可以将数据网格的列名与f2控件相关联。

这不是最美丽的方式,但它是即时的,它只是有效。

答案 1 :(得分:1)

这似乎是ViewModel绑定控件属性的一个很好的选择。然后,您可以更新模型以响应对话框或数据库查询中的操作,UI将更新。

答案 2 :(得分:0)

使用FindControl()从datagridview获取所需的文本,您编写的代码如何有一些错误,如何一次从同一个控件分配所有selectedCells的文本?