当前位置:  开发笔记 > 编程语言 > 正文

如何从C#中的类访问表单方法和控件?

如何解决《如何从C#中的类访问表单方法和控件?》经验,为你挑选了3个好方法。

我正在研究一个C#程序,现在我有一个Form和几个类.我希望能够从我的课程中访问一些Form控件(例如a TextBox).当我尝试更改TextBox我的类中的文本时,我收到以下错误:

非静态字段,方法或属性'Project.Form1.txtLog'需要对象引用

如何访问Form1.cs其中一个类中的方法和控件?



1> JamesSugrue..:

您正在尝试访问该类而不是该对象.这个陈述对于初学者来说可能会让人感到困惑,但是你有效地试图通过拿起房子计划的大门打开你的房门.

如果您确实想直接从类(您没有)访问表单组件,则可以使用实例化表单的变量.

根据您想要的方式,您可以更好地将控件文本或其他任何内容发送到类中的方法,例如

public void DoSomethingWithText(string formText)
{
   // do something text in here
}

或者在表单类上公开属性并在其中设置表单文本 - 例如

string SomeProperty
{
   get 
   {
      return textBox1.Text;
   }
   set
   {
      textBox1.Text = value;
   }
}



2> Timothy Cart..:

另一种解决方案是将文本框(或您想要修改的控件)传递给将其作为参数进行操作的方法.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        TestClass test = new TestClass();
        test.ModifyText(textBox1);
    }
}

public class TestClass
{
    public void ModifyText(TextBox textBox)
    {
        textBox.Text = "New text";
    }
}



3> Steven A. Lo..:

    您必须具有对表单对象的引用才能访问其元素

    必须将元素声明为public才能让另一个类访问它们

    不要这样做 - 你的班级必须过多地了解你的表格是如何实现的; 不要在表单类之外公开表单控件

    相反,在表单上创建公共属性以获取/设置您感兴趣的值

    发布您想要的更多细节以及为什么,听起来您可能正朝着与良好封装实践不一致的方向前进

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有