【问题标题】:c# getting value from other formc# 从其他形式获取价值
【发布时间】:2011-06-24 23:39:18
【问题描述】:

我的情况:form1 上的文本框(输入您的姓名)。从按钮上的那个form1单击我转到form2。从 form2 按钮单击到 form3。在按钮单击上的form3上,我需要从用户写下的form1上的文本框中的空文本框值中写入我。 示例:在 textbox1 的 form1 上,我写下我的名字“Djuzla”。当我转到 form3 并单击按钮以查看我在 form1 中写的名称时,它应该显示在空的 textbox3 form3 "Djuzla" 中。

我现在被这几个小时困住了,这是一个愚蠢的问题,但我不知道下一步该做什么.. 尝试了所有来自网上的无数人:p

【问题讨论】:

标签: c# forms


【解决方案1】:

您可以修改表单的构造函数,以多使用一个参数来保存文本框的值。

【讨论】:

    【解决方案2】:

    将值存储在属性中。如果您正在为 asp.net 开发,请使用 session 或 ViewState。我明白你的问题了吗?

    【讨论】:

      【解决方案3】:

      您可以从页面访问 PreviousPage 属性,或设置会话变量(或 cookie),然后在页面加载等时检索它,但最直接的解决方案是使用页面上的 PreviousPage 属性来访问数据从上一页开始。

      【讨论】:

        【解决方案4】:

        我的回答类似...由于您要从表格 1 到表格 2 再到表格 3,因此您基本上可以在此解决方案中采用相同的方法来根据需要将值逐出和返回,而不仅仅是一种方式...

        My Other Solution to similar question...

        【讨论】:

          【解决方案5】:

          传递值的解决方案可能会变得相当草率,因为无法保证文本框中的值在您已经传递到某个地方后不会改变。相反,传递一个函数更明智,该函数在调用时解析来自 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);
              }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-03-25
            • 2020-07-18
            • 2013-07-13
            • 1970-01-01
            相关资源
            最近更新 更多