c# - 从另一个类 C# 访问窗体的控件

标签 c#

我是 c# 和 visual studio 的新手,但不是一般的编程。 我搜索了 3 天的问题答案,发现了很多,但由于某些奇怪的原因(我确定我遗漏了一些非常明显的东西),我无法让它工作。 我认为这是像我这样的新手问的最基本的问题。 我有一个带有文本框和按钮的表单(Form3)(我设置它只是为了测试目的)。 我想从另一个类(class)填充和阅读这个文本框。我知道最正确的方法是在 Form3.cs 中使用 GET 和 SET 访问器创建一个属性。我做到了,但我无法让它工作。我没有收到任何错误消息,但我也无法设置文本框的值。它只是保持空白。 这是我的示例代码:

namespace WindowsFormsApplication1
{
    public partial class Form3 : Form
    {
        public string setCodes
        {
            get { return test1.Text; }
            set { test1.Text = value; }
        }

        public Form3()
        {
            InitializeComponent();
        }

        private void Form3_Load(object sender, EventArgs e)
        {   }

        private void button1_Click(object sender, EventArgs e)
        {
            a.b();
        }
    }

    public class a
    {       
        public static void b()
        {
            Form3 v = new Form3();
            v.setCodes = "abc123";
        }
    }
}

有人可以帮我解决这个问题吗?

最佳答案

问题是您将值设置为表单的新实例。尝试这样的事情:

public partial class Form3 : Form {
    public string setCodes
    {
        get { return test1.Text; }
        set { test1.Text = value; }
    }

    private A a;

    public Form3()
    {
        InitializeComponent();
        a = new A(this);
    } 

    private void button1_Click(object sender, EventArgs e)
    {            
        a.b();            
    }


    private void Form3_Load(object sender, EventArgs e)
    {

    }
}

public class A
{       
    private Form3 v;

    public a(Form3 v)
    {
        this.v = v;
    }

    public void b()
    {
        v.setCodes = "abc123";
    }
}    

关于c# - 从另一个类 C# 访问窗体的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576856/

相关文章:

c# ReadLine 不读取整个文件

c# - 将 ContextMenu 绑定(bind)到 Datagrid 列

c# - DesignerProperties.IsInDesignMode 和 DesignerProperties.IsInDesignTool 之间有什么区别?

c# - Elasticsearch Nest C#编译器错误

c# - 如何设置inktoolbar的笔颜色

c# - 如何遍历 JsonResult 方法返回的字典?

javascript - 如何使用 Ajax 将 WebSocket 数据从 View 发送到 Controller 以及将修改后的数据发送到 View

c# - 运行 Javascript 来调整 ASP.NET 控件的大小,一旦它被回传呈现或更新

c# - UnauthorizedAccessException 即使应用程序以管理员身份运行

c# - 不能将类型 void 隐式转换为对象。 .NET MVC 部分 View 结果