首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从其他类访问表单中的组件

无法从其他类访问表单中的组件
EN

Stack Overflow用户
提问于 2015-01-07 09:14:17
回答 2查看 881关注 0票数 0

我用一个按钮创建了一个普通的表单

代码语言:javascript
复制
namespace MultiServer
{
    public partial class Form1 : Form
    {
        public int i;//this I can access because it's global public

        public Form1()
        {
            InitializeComponent();
        }

        private void btnStartServer_Click(object sender, EventArgs e)
        {
            IPAddress ipAddress = Dns.GetHostEntry("localhost").AddressList[0];
            TcpListener listener = new TcpListener(ipAddress, 13);
            ListenForConnections lfc = new ListenForConnections(listener, this);

        }
    }
}

ListenForConnections-class中,我可以访问int i,因为它没有受到保护。但是,为什么我的按钮在类Form1中受到保护?是否存在通过ListenForConnections-class访问所有组件的方法?

代码语言:javascript
复制
namespace MultiServer
{

    class ListenForConnections
    {
        Form1 form;
        TcpListener listener;

        public ListenForConnections(TcpListener l, Form1 f)
        {
            this.listener = l;
            this.form = f;
            form.i = 10;

        }
    }
}

如您所见,我创建了一个Form1实例,并在构造函数中声明它。我可以访问变量,但不能访问按钮。

我知道我可以创建内部方法来更新主类(Form1)中的组件,但是我已经搜索了内部方法,并且对它没有明确的理解。

我会很感激你的帮助,哪怕只是一点点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-07 09:24:41

如果我正确理解了您的问题,您可以通过在设计视图中更改按钮的“修饰符”属性来做到这一点。

票数 2
EN

Stack Overflow用户

发布于 2015-01-07 09:26:33

尝试设置Modifiers属性。但是,不应该这样做。如果您想运行button事件的代码,那么将代码移动到一个函数中,并从buttonclass调用该函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27815928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档