如何让WinForms C#中的事件知道其他事件中的语句/声明?

nbewdwxp  于 2022-12-14  发布在  C#
关注(0)|答案(1)|浏览(149)
public partial class Form1 : Form
{ bool b=false;   
  private void button1_Click(object sender, EventArgs e)
    {
        b=true;
    }

  private void Form1_Load(object sender, EventArgs e)
    {
        if(b)
          {
              MessageBox.Show("hello");
          }
    }
}

我的意思是,当我点击button1时,Form1中的if语句不知道布尔值b为真。
bForm1中保持为假,因为我在事件开始之前就声明了它。
那么,当我点击button1时,如何让Form1知道b是真的呢?
比如如何连接/关联事件?
一般来说,我怎样才能让一个事件中的陈述知道其他事件中发生了什么,就像这里一样?

ds97pgxw

ds97pgxw1#

表单的Load事件是表单中引发的第一个事件,而且在每个表单存留期内只会引发一次。
当一个窗体被加载时,你在事件和方法之间声明的东西(在窗体的主体中)被创建,然后窗体的构造函数被调用(其中有InitializeComponent();的构造函数),最后,加载的事件(如果有的话)被引发。
现在,Boolean变量的默认值是false(您甚至手动将其设置为false),因此将布尔值设置为true的button1_Click事件将不会在窗体的loaded事件之前引发
因此,除非在每次单击按钮后将布尔值存储到数据库中,并在加载时从表单中的数据库中读取它,否则无法实现您想要的结果。
如果你能接受我的回答我会很感激的,也许这能帮你理清头绪。

相关问题