使用同一布尔值的两个窗体

本文关键字:两个 窗体 布尔值 | 更新日期: 2023-09-27 18:20:51

简而言之:

表单A和B需要在项目设置中使用布尔值:"booly"。

当按下形式a中的按钮时,变量"booly"设置为true。

然后形式B会出现,当它关闭时,它应该将布尔值设置为false,但我很难做到这一点。对于形式A,它工作得很好,但形式B不会更改变量。这是表格B:的代码

bool booly = Properties.Settings.Default.booly;
private void formB_FormClosing(object sender, FormClosingEventArgs e)
{
      booly = false;
}

使用同一布尔值的两个窗体

它不起作用的原因是您将Form2.booly实例设置为false,而不是Properties.Settings...。值得一提的是,如果您来自C++,那么booly是指向Properties.Settings.Default.booly的指针,所以您应该将方法更改为这样。

private void formB_FormClosing(object sender, FormClosingEventArgs e)
{
    Properties.Settings.Default.booly = false;
}

一个简单的例子/测试方法是:

static void Main(string[] args)
{
    bool valueA = true;
    bool valueB = valueA;
    // Both will print TRUE
    Console.WriteLine("ValueA is: " + valueA.ToString());
    Console.WriteLine("ValueB is: " + valueB.ToString());
    // Change valueA but leave valueB unchanged
    valueA = false;
    // valueA now FALSE while valueB is still TRUE
    Console.WriteLine("ValueA is: " + valueA.ToString());
    Console.WriteLine("ValueB is: " + valueB.ToString());
    Console.ReadKey();
}

因此,代码片段的最终输出将是:

Value A is: True
Value B is: True
Value A is: False
Value B is: True