我用一个按钮创建了一个普通的表单
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访问所有组件的方法?
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)中的组件,但是我已经搜索了内部方法,并且对它没有明确的理解。
我会很感激你的帮助,哪怕只是一点点。
发布于 2015-01-07 09:24:41
如果我正确理解了您的问题,您可以通过在设计视图中更改按钮的“修饰符”属性来做到这一点。
发布于 2015-01-07 09:26:33
尝试设置Modifiers属性。但是,不应该这样做。如果您想运行button事件的代码,那么将代码移动到一个函数中,并从button和class调用该函数。
https://stackoverflow.com/questions/27815928
复制相似问题