簡體   English   中英

使用復選框啟用文本框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM