【问题标题】:c# How to pass label to an anonymous form [duplicate]c#如何将标签传递给匿名表单[重复]
【发布时间】:2020-04-10 22:11:02
【问题描述】:

我想将我在 mainForm 中使用的标签传递给匿名表单。通过匿名形式,我的意思是这种形式的数量可以是无限的。我将显示我的代码以使其清楚。

这是我的第二个表格。

LABEL sourceObj;
public frmCounters(string text, ref LABEL _sourceObj)
{
   InitializeComponent();
   sourceObj = _sourceObj;
   this.Text = text;
   this.lblInfo.Text = text;
   this.lblTime = sourceObj;
}

这就是我的称呼

AnonymForm afrm = new AnonymForm("TEST1", ref lblTEST1);
afrm.Show();

我想要在这里实现的只是在我从主表单更改源时更新匿名表单的标签。我尝试过在构造函数中使用和不使用 ref 关键字。我已经将我在构造函数中获得的值绑定到我以匿名形式保存的另一个变量。我也想尝试发送文本属性作为参考,但 Visual Studio 说我不能使用 ref 关键字传递属性。

我的问题是我怎样才能做到这一点?

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    添加AnonymForm类方法如:

    public void SetLabelText(string value)
    {
        this.label.Text = value;
    }
    

    并从主窗体调用它:

    afrm.SetLabelText("TEXT");
    

    【讨论】:

    • 我不同意。我在我的主菜单条中调用它。也许这就是问题所在?我应该把 afrm 放在某个地方吗?
    • @ShinoLex 是的,您可以将它保存在某个变量中,或者如果您有多种形式,请将它们保存在数组中。
    • AnonymForm 的数量将是未知的。并不是所有的 AnonymForm 都会有相同的标签。其中一些可能有 lblTEST2 或 lblTEST3 标签
    • 不,将表单对象保存在列表中并没有解决它。我在 mainform.lblTEST1 中所做的更改并没有反映到我的 anonymForm
    • @ShinoLex 你不应该改变主窗体上的标签。 Yoy 必须在子窗体上放置标签并通过方法更改文本。
    猜你喜欢
    • 1970-01-01
    • 2011-07-03
    • 2017-03-02
    • 1970-01-01
    • 2020-08-21
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    相关资源
    最近更新 更多