将变量绑定到.net文本框.文本属性
本文关键字:文本 属性 net 变量 绑定 | 更新日期: 2023-09-27 18:08:22
我试图做一个简单的变量绑定到一个控制文本框,但我不能为我的生活得到这个工作。下面是两个表单的场景,一个带有数据网格,另一个带有两个文本框。当我单击数据网格时,我想将这些变量传递给FORM1中的文本框。这就是我尝试过的,没有结果。In my form1
public string myText
{
get { return tuidInput.Text; }
set { tuidInput.Text = value; }
}
然后我的形式二当我试图设置的值,我尝试这个
private void selectUser(object sender, DataGridViewCellEventArgs e)
{
userPicked.tuid = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells["spriden_id"].Value.ToString();
userPicked.Name = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells["spriden_last_name"].Value.ToString();
Form1 form1 = new Form1();
form1.myText = userPicked.tuid
}
我从这里得到了那个例子http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/7308639f-640b-48bf-8293-abcbfd2292d8/
但是它不更新文本框?我应该做些什么改变?
我做错了什么?我如何才能正确地做到这一点,我在这里看了几篇文章,但都没有成功。
我不确定是不是这样,但是在:form1.myText = userPicked.tuid
您引用的是新创建的Form1对象,在上面一行初始化。如果你检查form1.myText
属性,你可能会注意到它有它的值,但它不是你想要实际引用的表单对象。如果文本框在Form2中,那么在Form1中创建一个Form2引用。private Form2 form2 = null;
并创建一个属性
public Form2 SecondForm
{
set { this.form2 = value; }
}
正确分配它,然后在Form1中正常使用form2.tuidInput.Text
。
上面的答案都没有回答这个问题,我终于在这里找到了答案http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/9339C805-58C6-4DC2-934F-2A4ADC67ED4D这就是我所需要做的。我将文本框更改为public,然后从form2中运行它,效果非常好。
Form1 form1 = (Form1)Application.OpenForms["Form1"];
感谢大家的回复。米格尔
你试过了吗:
Form1 form1 = new Form1();
form1.myText.Text = userPicked.tuid;
form1.myText.Refresh();
form1.Show();
重新加载文本框后,您可能需要重新绘制文本框。
而且,你说你想正确地做这件事。要做到"正确"(我说它是宽松的,因为"正确"可以被许多不同的人以多种方式解释!)-我想建议使用MVP, MVVM或MVC模式来处理这个问题,而不是在GUI中做这个业务逻辑。
MVP的例子:http://haacked.com/archive/2006/08/09/ASP.NETSupervisingControllerModelViewPresenterFromSchematicToUnitTestsToCode.aspx