无法访问不同类中窗体中的组件
本文关键字:窗体 组件 同类 访问 | 更新日期: 2023-09-27 18:36:28
我用一个按钮创建了一个普通表单
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
类中,我可以访问int i
,因为它不受保护。但是,为什么我的按钮在类Form1
中受到保护? 无论如何都可以通过ListenForConnections
类访问所有组件吗?
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)中的组件,但是我已经用谷歌搜索了内部方法,并且没有清楚地了解它。
我将不胜感激一些帮助,即使是一点点。
如果我正确理解了您的问题,您可以通过在设计视图中更改按钮的"修饰符"属性来做到这一点。
尝试设置 Modifiers
属性。但是,这不应该以这种方式进行。如果要运行button
事件的代码,请将代码移动到函数中,并从button
和class
调用该函数。