我用一个按钮
创建了一个普通表单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)中的组件,但是我已经用Google搜索了内部方法,并且没有清楚地了解它。
我会感激一些帮助,即使它有点帮助。
答案 0 :(得分:2)
如果我正确理解了您的问题,您可以通过在设计视图中更改按钮的“修改器”属性来实现。
答案 1 :(得分:1)
尝试设置Modifiers
属性。但是这不应该这样做。如果您要运行button
事件的代码,请将代码移至函数并从button
和class
调用该函数。