[英]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.