我目前正在做一個家庭作業,我需要設置一個計算器類型的程序。它需要讀取一個或兩個用戶輸入值(取決於計算),然後根據這些值執行計算。啓用基於文本框和單選按鈕的按鈕
我現在有
- 2文本框(
tbInput1
和tbInput2
), - 4單選按鈕,
- 一個按鈕(
btnCalc
) - 空白
label
在其中顯示結果。
兩個radioButtons(rbtnTrap
和rbtnFak
)在選中時禁用第一個文本框;另外兩個需要輸入兩個值,因此在檢查時啓用兩個文本框。 btnCalc
應該在相關數量的文本框具有值時啓用自己 - 相關數量的文本框取決於檢查哪個單選按鈕。
的問題是,當我檢查rbtnTrap
或rbtnFak
(禁用tbInput1
)和tbInput2
輸入一個整數,btnCalc
撐禁用。
我會盡力解釋我到目前爲止有:
- 在
_TextChanged
事件tbInput1
,我有第二if
塊貼在下面的精確副本。tbInput1
僅在rbtnPot
或rbtnFib
被選中時纔有效,以便僅在這種情況下才能運行控制。 - 在
_TextChanged
事件tbInput2
,我有以下的,因爲tbInput2
是總是啓用和控制必須運行無論哪個單選按鈕被選中,雖然控制應該運行不同,如果我檢查rbtnTrap
或rbtnFak
相到rbtnPot
或rbtnFib
。
或者這就是我對它的理解。我當然願意接受建議和更正。
private void tbInput2_TextChanged(object sender, EventArgs e)
{
//For single-field values
if ((rbtnTrap.Checked || rbtnFak.Checked) &&
!string.IsNullOrWhiteSpace(this.tbInput2.Text))
{
btnCalc.Enabled = true;
}
else
{
btnCalc.Enabled = false;
}
// For multi-field values
if ((rbtnPot.Checked || rbtnFib.Checked) &&
(!string.IsNullOrWhiteSpace(this.tbInput1.Text)
&& !string.IsNullOrWhiteSpace(this.tbInput2.Text)))
{
btnCalc.Enabled = true;
}
else
{
btnCalc.Enabled = false;
}
}
啊哈!那麼,我完全可以明白,爲什麼處置!= null組件會重新禁用該按鈕。但是,我不確定它來自哪裏,因爲我必須設定程序以某種方式來完成它。任何提示? (並沒有直接的答案是完全正確的,我想學習 - 不復制/粘貼:)) – Xarth
我不知道你爲什麼在討論「*處置!=空分量*」。你在'someObject.Dispose()'中使用「處置」這個術語嗎? (請參閱我的編輯您的問題) – Otiel
啊,對不起。一旦我完成了F10的運行問題,它將我帶到了designer.cs文件中。我首先看到的是'protected override void Dispose(bool disposing)',並且在if(disposing &&(components!= null))之下。顯然不是你的意思。感謝您的編輯和提示。我會看到關於調整我的代碼以在正確的子句之後停止檢查。 :) – Xarth