C# 在主窗体内对象的属性通过调用其他类的方法修改

2025-04-14 20:31:57
推荐回答(1个)
回答1:

1)在主窗口Form1上布置一个TextBox和一个Button

2)Function类

namespace WindowsFormsApplication1
{
    class Function
    {
        private Form1 f;
        // 构造函数参数类型为Form1
        public Function(Form1 f)
        {
            this.f = f;
        }

        public void SetTextInForm(string s)
        {
            f.SetText(s);
        }
    }
}

3)主窗口 Form1.cs

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        // 这个方法修改textBox1的显示
        public void SetText(string s)
        {
            this.textBox1.Text = s;
        }

        // 点击button后,生成一个Function实例
        // 然后调用这个实例的SetTextInForm方法
        // 修改Form1上textBox1的内容
        private void button1_Click(object sender, EventArgs e)
        {
            // 实例化一个Function,注意构造的函数参数 this
            Function fun = new Function(this);
            // 调用这个实例的方法,修改textBox1内容
            fun.SetTextInForm("abc");
        }
    }
}