【问题标题】:change label text in derived form where label located in base form在派生形式中更改标签文本,其中标签位于基本形式中
【发布时间】:2013-12-01 06:22:14
【问题描述】:

我是 C# 中的 windows 窗体的新手我正在开发一个 windows 窗体应用程序,我在我的项目中放置了一个基本窗体,因此继承基本窗体的其他窗体具有基本窗体的控件...

我有一个主表单继承了基本表单,基本表单有一个标签控件,在我创建的每个表单的顶部显示用户名。问题是我不知道如何更改从基本表单派生的表单中的标签文本。

我需要更改登录表单中的标签文本,这是一个在启动后显示的单独表单

有什么办法吗???

由于安全原因,我无法将代码放在这里,但我真的需要帮助。所以请帮帮我....

【问题讨论】:

  • 您是否要从另一种形式中更改一种形式?或者您是否尝试从孩子那里以基本形式设置数据?如果是后者,那么我的回答应该会有所帮助。如果我错过了标记,请告诉我。

标签: c# winforms


【解决方案1】:

听起来你可能有这样的代码:

从基类继承的表单,您要设置控件的值。

public partial class Form2 : BaseForm
{
    public Form2()
    {
        this.textBox1.Text = "my stuff";
    }

}

基类有一个声明控件的设计器类。

默认情况下,控件声明为private

public partial class BaseForm: Form
{
    //declared by default in .designer.cs
    //private System.Windows.Forms.TextBox textBox1;
    //change to:
    protected System.Windows.Forms.TextBox textBox1;

    private void InitializeComponent()
    {
        this.textBox1 = new System.Windows.Forms.TextBox();
    }
}

如果控件设置为protectedpublic,则子类将能够访问和更改它们的值。

【讨论】:

  • 我认为可以使用 VS 表单设计器来多选表单控件并将其 Visibility 属性设置为protected。一般来说,我建议protectedpublic 更好,因为后者允许任何引用表单的对象修改其公开可见的控件。
  • 同意,一般来说受保护是更好的选择。
猜你喜欢
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
  • 2017-07-24
  • 2022-08-15
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多