[英]using checkbox to enable textbox
我在這里嘗試制作Winforms中的應用程序。 這就是我希望的方式:每當用戶單擊注冊訪問者按鈕時,注冊表單就會打開。 工作正常。 這是在這種情況下調用的函數:
private void Register_Visitor_Load(object sender, EventArgs e)
在此表單上,我放置了一個文本字段,該文本字段在表單加載時要禁用。 我寫了一行,禁用了表單加載時的文本框:
textbox1.enabled = false;
我把上面的行放在可以正常工作的加載函數中。 現在我想基於選中的復選框啟用我的textbox1。 為此,我編寫了代碼:
CheckState state = checkBox1.CheckState;
switch (state)
{
case CheckState.Checked:
{
textBox1.Enabled = true;
break;
}
case CheckState.Indeterminate:
case CheckState.Unchecked:
{
break;
}
現在,當我將上面的代碼放在頁面加載函數中時,什么也不會發生,這肯定會發生,因為該函數僅在表單加載時被調用。 沒有得到的是在哪里放置復選框代碼,以便在運行時啟用我的文本框。 其他功能是對按鈕的響應,但是我希望它在用戶選中復選框時在運行時立即啟用文本字段。 請向我解釋我將如何實現這一目標!
您可以使用CheckStateChanged
事件; 因此,無論checkBox1
被選中/未選中/為灰色的任何原因,您都將正確啟用/禁用textBox1
private void checkBox1_CheckStateChanged(object sender, EventArgs e) {
textBox1.Enabled = (checkBox1.CheckState == CheckState.Checked);
}
您將代碼放置在錯誤的事件上。
而不是將其放置在pageload
,而是將代碼放置在復選框的chekchange
事件上。
那對你有幫助。
private void chkDisable_CheckedChanged(object sender, EventArgs e)
{
if (((CheckBox)sender).Checked)
{
textBox1.Enable=true;
}
else
{
textBox1.Enable=false;
}
}
將上面的代碼放入處理復選框事件的函數中。 您的情況是已checkchanged
狀態。
您可以嘗試以下方法:
private void checkBox1_Click(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
textBox1.Enabled = false;
}
else
{
textBox1.Enabled = true;
}
}
我做了一些上述答案的混合體,並且效果很好。 我希望在加載表單時禁用按鈕的狀態,但是如果用戶選中一個框,則將其啟用,下面是代碼:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
button1.Enabled = (checkBox1.CheckState == CheckState.Checked);
}
private void Form1_Load(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
button1.Enabled = true;
}
else
{
button1.Enabled = false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.