Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用同一布尔值的两个窗体_C#_Boolean_Settings - Fatal编程技术网

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

C# 使用同一布尔值的两个窗体,c#,boolean,settings,C#,Boolean,Settings,简而言之: 表单A和B需要在项目设置中使用布尔值:“booly” 当按下表a中的按钮时,变量“booly”设置为true 然后表格B会出现,当它关闭时,它应该将布尔值设置为false,但是我很难让它工作。对于形式A,它工作得很好,但形式B并没有改变变量。以下是表格B的代码: bool booly = Properties.Settings.Default.booly; private void formB_FormClosing(object sender, FormClosingEventA

简而言之:

表单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,而不是
属性。设置…
。值得一提的是,<代码> BooLy是<强> > < >强>指向“代码>属性”的设置。默认。BooLy >如果您来自C++,那么您应该将方法更改为此。

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
因此,代码片段的最终输出将是:

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

你的书是全球性的吗?当您尝试从表单B设置它时,它会抛出编译错误吗?你说它没有设定是什么意思?您正在使用Visual Studio吗?它是否告诉您它可以访问它?可能至少有100个原因。需要更多的细节kimosabi。