3 回答

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
為此,您需要使變量在方法級(jí)別可見(jiàn)。為此將其移到 if 塊之外:
public class MainUIForm : Form
{
private Log F2 = null;
public void checkBox4_CheckedChanged(object sender, EventArgs e)
{
if (checkBox4.Checked)
{
F2 = new Log();
F2.Show();
}
else
{
F2?.Close(); // for closing which will dispose it
}
}
}
這假設(shè)當(dāng)您選中復(fù)選框時(shí),您需要打開(kāi)一個(gè)新窗口Log并丟棄以前的窗口及其狀態(tài)。
如果日志窗口需要?jiǎng)?chuàng)建/實(shí)例化一次,并且您只需將其顯示給用戶并根據(jù)復(fù)選框是否選中而隱藏,那么您需要調(diào)整代碼,例如:
public class MainUIForm : Form
{
private Log F2 = new Log();
public void checkBox4_CheckedChanged(object sender, EventArgs e)
{
checkBox4.Checked ?
F2.Show() :
F2.Hide();
}
}

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
修改你的主窗體應(yīng)該是這樣的
///Make it as global
Log F2 = null;
public void checkBox4_CheckedChanged(object sender, EventArgs e)
{
if (checkBox4.Checked == true)
{
if(F2 == null)
{
F2=new Log();
}
F2.Show();
}
else if (checkBox4.Checked == false && F2 != null)
{
F2.Hide();
F2.Close();
//Here should the exit code be for the Log form.
}
}

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
帖子解決了,我做了 Log.Close(); 而不是 Log.Hide() 已修復(fù)!
- 3 回答
- 0 關(guān)注
- 158 瀏覽
添加回答
舉報(bào)