将变量绑定到.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/

但是它不更新文本框?我应该做些什么改变?

我做错了什么?我如何才能正确地做到这一点,我在这里看了几篇文章,但都没有成功。

将变量绑定到.net文本框.文本属性

我不确定是不是这样,但是在:
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