winforms 在C# winform中启用文本更改的禁用按钮

7lrncoxx  于 2023-10-23  发布在  C#
关注(0)|答案(7)|浏览(171)

我正在开发一个应用程序,其中有一个按钮在搜索框(像一个在itunes).我想启用取消按钮,每当有文本框中的文本,并禁用它时,文本框是空的。我尝试用下面的代码在textbox上使用text_changed事件,但它跳过了if条件。即使发件人发送给我正确的价值观,但我无法把它变成如果其他。

private void textBox1_TextChanged(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(sender.ToString()))
        {
            btn_cancel.Visible = false;
        }
        else
        {
            btn_cancel.Visible = true;
        }
    }

请帮

cgfeq70w

cgfeq70w1#

这里有一个简单的解决方案。

private void textBox1_TextChanged(object sender, EventArgs e)
    {
        this.button1.Enabled = !string.IsNullOrWhiteSpace(this.textBox1.Text);
    }

当然,你必须在表单初始加载时设置button.Enabled = false,因为textbox事件不会在启动时触发(对于当前为你的问题提供的所有答案为true)。

fcwjkofz

fcwjkofz2#

private void textBox1_TextChanged(object sender, EventArgs e)
{
    if (String.IsNullOrEmpty(textBox1.Text))
        btn_cancel.Visible = false;
    else
        btn_cancel.Visible = true;
}
6yjfywim

6yjfywim3#

试试这个:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    var textbox = sender as TextBox;
    if (string.IsNullOrEmpty(textbox.Text))
    {
        btn_cancel.Visible = false;
    }
    else
    {
        btn_cancel.Visible = true;
    }
}

sender.ToString()将始终返回System.Windows.Forms.TextBox您需要将sender转换为TextBox并使用Text值进行null或空检查

dvtswwa3

dvtswwa34#

尝试将发送者强制转换为TextBox:

if (string.IsNullOrEmpty(((TextBox)sender).Text))
6bc51xsx

6bc51xsx5#

一个内衬:

btn_cancel.Visible = textBox1.Text.Length > 0;
jw5wzhpr

jw5wzhpr6#

我会这么做

private void textBox1_TextChanged(object sender, EventArgs e)
{        
    string text = ((sender as TextBox) == null ? string.Empty : (sender as TextBox).Text);
    this.button1.Enabled = (string.IsNullOrWhiteSpace(text) == false);
}

这并不假设事件源是一个特定的控件,并避免了错误地将其附加到非TextBox的对象时的异常。

pb3skfrl

pb3skfrl7#

private void textBox2_TextChanged(object sender, EventArgs e)
    { 
        if (textBox2.Text == "") 
        {
            button5.Enabled = false;
        }
        else
        {
            button5.Enabled = true;
        }
        
    }

相关问题