VS2017 C#:打开窗体时无需点击按钮调用函数的方法
解决WinForms窗体打开时自动调用函数的问题
首先,你直接在类作用域里写 sayfayi.goster(sayfa,kapasite); 肯定会报错——C# 不允许在类的直接成员区域写可执行语句,这些代码必须放在方法、构造函数或者事件处理程序里才行。结合你的需求,有两种简单的实现方式:
方法一:在窗体构造函数中调用
既然你已经有了窗体的构造函数,只需要在 InitializeComponent(); 之后添加方法调用即可——因为 InitializeComponent() 负责初始化所有窗体控件,这时候调用方法不会出现控件未初始化的空引用问题:
int sayfa = 1; int kapasite = 20; public Form2() { InitializeComponent(); // 在这里调用你的方法,注意方法名是下划线不是点! sayfayi_goster(sayfa, kapasite); } private void sayfayi_goster(int Sayfa, int Kapasite) { textBox6.Text = Sayfa.ToString() + "/" + Kapasite.ToString(); }
方法二:使用窗体的Load事件
如果更倾向于把初始化逻辑和构造函数分开,可以用窗体的Load事件(窗体完全加载完成后触发):
- 要么在Visual Studio设计器里双击窗体空白处,自动生成
Form2_Load事件处理方法; - 要么手动在构造函数里绑定事件并实现方法:
int sayfa = 1; int kapasite = 20; public Form2() { InitializeComponent(); // 手动绑定Load事件 this.Load += Form2_Load; } private void Form2_Load(object sender, EventArgs e) { sayfayi_goster(sayfa, kapasite); } private void sayfayi_goster(int Sayfa, int Kapasite) { textBox6.Text = Sayfa.ToString() + "/" + Kapasite.ToString(); }
另外注意:你原代码里写的sayfayi.goster是拼写错误,你的方法名是sayfayi_goster(下划线连接),不是点,这个错误也要修正,不然即使放在正确位置也会编译失败。
内容的提问来源于stack exchange,提问作者Sniper Sniperx
相关产品推荐
相关产品推荐

