如何解决c#从其他形式获取值
| 我遇到的情况:在form1上的文本框(输入您的姓名)。从按钮上的form1单击“我”进入form2。从form2按钮单击到form3。在单击按钮的form3上,我需要在用户写下的form1上的文本框中输入空文本框值。 示例:在textbox1的form1上,我写下我的名字\“ Djuzla \”。当我转到form3并单击按钮以查看我在form1中写的名称时,它应显示在空的textbox3 form3 \“ Djuzla \”中。 我现在已经呆了几个小时,这是个愚蠢的问题,但是我不知道下一步该怎么做..从网上的zillion theards尝试了所有方法:p解决方法
您可以修改表单的构造函数以使用另一个参数来保存textBox的值。
, 将值存储在属性中。如果您正在开发asp.net,请使用session或ViewState。我明白你的问题吗?
, 您可以从页面访问PreviousPage属性,或者设置会话变量(或cookie),然后在页面加载等情况下检索它。但是最直接的解决方案是使用页面上的PreviousPage属性访问上一页的数据。 。
, 我已经回答了类似的问题...由于您是从表格1到表格2到表格3,因此您基本上可以在此解决方案中采用相同的方法来按需层叠价值,而不仅仅是一种方式...
我对类似问题的其他解决方案...
, 传递值的解决方案可能会变得很草率,因为无法保证文本框内的值在传递到某个地方后不会改变。相反,传递一个函数比较明智,该函数可以在调用时解析TextBox中的值,这将导致始终获得最新的值。
void button1_Click() {
form2 = new Form2(() => textBoxName.Text);
}
class Form2 : Form {
...
public Form2(Func<String> nameResolver) {
form3 = new Form3(nameResolver);
}
void button1_Click(...) {
form3.Show()
}
}
class Form3 : Form {
Func<String> nameResolver;
public Form3(Func<string> nameResolver) {
this.nameResolver = nameResolver;
}
void button1_Click(...) {
this.textBoxName = nameResolver.Invoke();
}
}
如果最终需要在多个表单之间共享多个组件,则最好将表单本身传递给子表单。例如。
void button1_Click(...) {
form2 = new Form2(this);
}
class Form2 : Form {
Form1 parent;
public Form2(Form1 parent) {
this.parent = parent;
}
void button1_Click(...) {
form3 = new Form3(parent);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。