ekoneo 发表于 2021-10-19 03:33:28

类继承有问题

我创建了一个包含标签1的表单1。我还创建了一个class1文件。当Form1加载时,startFunction方法将由Form1_Load事件触发。startFunction是一个继承的方法。
namespace MyNameSpace
{
    public partial class Form1 : Form
    {
      public Form1()
      {
            InitializeComponent();
      }
      private void Form1_Load (object sender, EventArgs e)
      {
            StartMethod();
      }
      public void startMethod()
      {
            Class1 ClasInherited = new Class1();
            ClasInherited.ChangeLabelText();
         }
.
.

Class1.cs文件包含ChangeLabelText()方法。

public partial class Class1
    {
    Form1 form1 = new YuzeyAnaliz();
   
   public void ChangeLabelText()
    {
   
   form1.label5.Text = "Text changed";
    }
.
.

但是label5文本不会改变。我错过了一些东西。
**** Hidden Message *****

MickD 发表于 2021-10-19 16:39:36

您正在将另一个窗体“嵌入”到Class1类中,而不是继承Class1。Form1继承自窗体
Class1不继承任何内容,但它确实在其内部创建了一个Form1(封装)
类似的操作应该可以:
公共类Form1:form
{
public Form1()//构造函数,如果需要,可以在这里初始化所有内容,而不是_Load。
{
初始化组件()
//您也可以在此处更改文本。
}
私有void Form1_Load(对象发送者,事件参数e)
{
<div>//_Load适用于加载外部数据,例如在加载表单时加载保存的设置。</div>
StartMethod()
//或者只在这里更改文本,不需要StartMethod():
//this.lable5.Text=“文本已更改”
}
公共void StartMethod()
{
this.lable5.Text=“文本已更改”
}
}
页: [1]
查看完整版本: 类继承有问题