我處於項目的中間,我試圖將bool從一個窗體傳遞到另一個窗體,但是任何時候,我都這樣做不起作用。將bool從一種表單傳遞到另一種表單(不工作)
形式1
public bool test = false;
private void bluelineToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackgroundImage = Properties.Resources.Background_Mainframe_Blueline;
test = true;
}
形式2
private void AboutWindow_Load(object sender, EventArgs e)
{
Mainframe main = new Mainframe();
if (main.test == true) //reads test as false rather then true.
{
this.BackgroundImage = Properties.Resources.Background_About_Blueline;
}
}
當第二形式加載它是讀取布爾爲真但它讀取爲假。
我讀的布爾錯了嗎?
有人可以請幫忙。
是它真正形式加載時?看起來你只在按下按鈕時纔將test設置爲true,這可能是在窗體加載後。 此外,這不是那麼有效。如果Form1包含在Form1中,它不會像C#中的任何其他對象那樣知道Form1的存在。如果您確實需要第二種形式從第一種形式獲取數據,則可以在Form2上使用Form1調用方法來對其中的數據進行變形。 – Ares
這是因爲您正在創建一個新的主窗體,它將變量設置回其默認值,而不是引用已創建的主窗體。創建一個新的類文件,並將bool變量放在該新類中,並以這兩種形式使用它。 – sous2817
About窗口爲什麼會創建一個新的Mainframe?我懷疑你只是爲了讓對象訪問而已,但實際上你需要訪問現有的Mainframe實例。 –