【问题标题】:Having an issue updating label text while using multiple forms [duplicate]使用多个表单时更新标签文本时出现问题[重复]
【发布时间】:2017-04-26 10:16:36
【问题描述】:

在表单 1 上,我有一个名为 item1 的标签,在表单 2 上,我想单击一个更改标签文本的按钮,但目前无法执行此操作。

我在表格 1 上有这个

        public string item1text
    {
        get { return this.item1.Text; }
        set { this.item1.Text = value; }
    }

点击按钮时在表单 2 上显示

form1 frm = new form1();

frm.item1text = "hello";

这应该可以,但它不会更新表单 1 上的文本,只显示原始文本而不是“你好”。我在打开表格 2 的同时隐藏表格 1,然后在表格 2 关闭时重新显示表格 1,这可能与搞砸显示“你好”有关吗?我试过 refresh();但没有运气。

【问题讨论】:

  • form1 和 form2 是如何关联的? form1打开form2还是其他方式?
  • 你上面显示的代码完全没问题,但是你显示表单的方式有问题
  • 表单 1 有一个打开表单 2 的按钮,然后隐藏表单 1,然后表单 2 有一个关闭按钮,然后再次显示表单 1
  • 我不相信我们真的需要另一个版本的“我想修改现有表单,但要创建一个新表单”问题。请参阅标记的重复项,以了解所有提出相同问题的现有问题的一小部分。
  • 我会说由于表格的隐藏和显示,我的与这些不同,所有这些“重复”都没有涵盖这一点

标签: c#


【解决方案1】:

您正在 form2 中创建一个新的 form1,它不会更新现有的。在form2中创建一个属性

public Form ParentForm { get; set; }

然后在form1按钮点击设置值

Form2 f2 = new Form2();
f2.ParentForm = this;
f2.Show();
this.Hide();

在form2中设置标签文字如下

ParentForm.item1Text = "Hello";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多