當標籤上的文本發生更改時,如何使複選框自行取消選中?C#當標籤上的文字發生變化時取消選中文本框
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if(Price.Text == "?"){ checkBox1.Checked = false}
}
我不知道我應該把什麼放在「?」
當標籤上的文本發生更改時,如何使複選框自行取消選中?C#當標籤上的文字發生變化時取消選中文本框
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if(Price.Text == "?"){ checkBox1.Checked = false}
}
我不知道我應該把什麼放在「?」
你應該處理TextChanged
事件的標籤:
private void label1_TextChanged(object sender, EventArgs e)
{
//You can use any logic here,
//for example you can check if(label1.Text=="something")
this.checkBox1.Checked = false;
}
「檢查」指派可能需要根據標籤文本的值進行驗證 - 編輯等待審覈。 –
@RobertFoster謝謝你的評論和編輯,基於OP問題**我不知道我應該放在「?」**我不確定OP是否希望這樣,我會改進答案並添加一個在代碼中註釋:) –
是的,我意識到我的編輯後也是如此 - 編輯更好:) –
創建一個公共布爾類型變量
public bool DirtyBool = false;
不管你寫的代碼來改變標籤的價值,你可以做一個像這樣的bool類型的新變量。
DirtyBool = true;
比你可以做這樣的
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if(DirtyBool){ checkBox1.Checked = false; }
}
BTW CheckedChanged
當複選框被選中或取消選中從而通過@Reza Aghaei提供的答案將是更適合於事件只被解僱你情況。
雖然這是針對錯誤的事件 - 應該根據其他控件的事件設置目標複選框的「Checked」屬性。 –
您選中的Check將在您的CheckBox.CheckedChanged事件中觸發。您必須在Label的TextChanged事件中觸發它。 Reza的答案並不完整,因此您應該這樣做:
YourLabel.TextChanged += (s, e) =>
{
if(YourLabel.Text == "?") yourCheckBox.Checked = false;
else yourCheckBox.Checked = true;
};
您應該處理標籤的TextChanged事件。 –