[英]How would I go About Getting a Global Variables value in another form?
所以我是编程新手,我在 Visual Studios c# Windows 应用程序 Forms 上工作,我在第一个表单上有一个按钮,当按下第二个表单时,它也需要设置为 true。
在第二次 forms 启动时,我需要它来判断该布尔值是设置为真还是假,以启用按钮(在第二个表单上)或保持禁用(如果为 False。
这是第一个 Forms 代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Project
{
public partial class FirstPage: Form
{
public FirstPage()
{
InitializeComponent();
}
public bool IsManager = false;
public static class Global
{
public static bool IsManager = false;
}
private void Button_Btn_Click(object sender, EventArgs e)
{
this.hide();
Form2 f2 = new form2(IsManager);
f2.ShowDialog();
IsManager = true;
}
}
}
这是我的第二个 Forms 代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Project
{
public partial class SecondPage : Form
{
public FirstPage()
{
InitializeComponent();
IsManager = isManager;
}
private bool isManager;
private void setButtonVisibility()
{
if(isManager == true)
{
MessageBox.Show("Button Message Display")
}
{
//Need to check if the Global variable is true or false on page load to set a button to either enabled or disabled
}
}
希望这是有道理的如果不让我知道:) 谢谢!
您可以通过将变量传递给第二种形式的构造函数来完成此操作。 假设您要将IsManager
值发送到第二种形式。 在将值传递给构造函数时调用第二种形式:
Form2 f2 = new Form2(IsManager);
在第二种形式中,读取值:
public partial class Form2 : Form
{
private bool IsManager;
public Form2(bool isManager)
{
InitializeComponent();
IsManager = isManager;
}
//Render button or whatever based on IsManager value;
}
编辑:检查按钮是否需要启用:
public partial class Form2 : Form
{
private bool IsManager;
public Form2(bool isManager)
{
InitializeComponent();
IsManager = isManager;
setButtonVisibility(); //call method setVisibility() -> this is what was missing in your code
}
private void setButtonVisibility()
{
if(IsManager == true)
{
MessageBox.Show("Button Message Display");
//or YourButton.Enable = true; in order to enable it.
}
}
}
在您的第二种形式中,有几个问题:
好吧,在阅读了您的问题后,我假设您正在尝试为全局 bool IsManager 设置一个值,并希望根据该值以另一种形式执行一些操作。
您可以通过多种方式实现这一点,一种在第二种形式的构造函数中传递您的全局布尔值,如下所示
public partial class SecondPage: Form
{
bool _isManager;
public SecondPage(bool IsManager)
{
InitializeComponent();
_isManager = IsManager; // the problem was isManager as mistakenkly i used small "i"
}
}
并从第一种形式传递值,例如
private void Button_Btn_Click(object sender, EventArgs e)
{
this.hide();
IsManager = true;
Form2 f2 = new form2(IsManager);
f2.ShowDialog();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.