当前位置: 首页 > 知识库问答 >
问题:

如果文本框为空,如何禁用按钮

韩刚洁
2023-03-14
public partial class ModulusForm : Form
{
    public double nje;
    public double dy;
    public double pergjigja;
    public double rezultati;
    public ModulusForm()
    {

        InitializeComponent();
        Button btn = new Button();
        btn.Click += new EventHandler(butoniGjenero_Click); 
    }
    private void butoniPerfundo_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    private void butoniGjenero_Click(object sender, EventArgs e)
    {
        Random random = new Random();
        nje = random.Next(1, 100);
        dy = random.Next(1, 100);
        if (nje > dy)
        { textboxPyetja.Text = "X = " + nje + "    " + "dhe" + "    " + "Y = " + dy; }
        else if (nje > dy)
        {
            nje = random.Next(1, 100);
            dy = random.Next(1, 100);
        }
        rezultati = nje / dy;
    }
    private void butoniPastro_Click(object sender, EventArgs e)
    {
            textboxPyetja.Clear();
            textboxPergjigja.Clear();
            textboxPergjigjaSakt.Clear();
    }
    private void butoniVerteto_Click(object sender, EventArgs e)
    {
        try
        {
            pergjigja = double.Parse(textboxPergjigja.Text);
        }
        catch
        {
            var informim = MessageBox.Show("Rishiko fushat!", "Verejtje", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        if (textboxPergjigja.Text == "")
        {
            //nothin' baby
        }
        else
        {
            if (textboxPyetja.Text == "")
            {
                var informim = MessageBox.Show("Fusha e pyetjes eshte null!", "Verejtje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                if (pergjigja == rezultati)
                {
                    textboxPergjigjaSakt.Text = "Pergjigja eshte e sakte";
                }
                else
                {
                    textboxPergjigjaSakt.Text = "Gabim." + " " + "Pergjigja e sakte eshte: " + "" + rezultati;
                }
                comboboxVargu.Items.Add(nje + " / " + dy + " = " + rezultati);
            }
        }
    }
}

}

共有3个答案

寇宏义
2023-03-14

在TextBox的TextChanged事件中处理它。(在Design中双击textbox控件,它将自动为您创建文本更改事件)。

private void textboxPyetja_OnTextChanged(..blah blah)
{
    if(String.IsNullOrWhitespace(txtTargetTextbox.Text)
    {
        //disable your control
    }
    else
    {
        //enable your control
    }
}

4年后编辑-出于某种原因:这里有一个单行版本,有些人只是喜欢他们。。。

private void textboxPyetja_OnTextChanged(..blah blah)
{
    btnILoveButtons.Enabled = string.IsNullOrWhitespace(txtTargetTextbox.Text);
{
方航
2023-03-14
private void YourTextBox_TextChanged(object sender, EventArgs e)
{
    if (String.IsNullOrEmpty(YourTextBox.Text))
        YourButton.Enabled = false;
    else
        YourButton.Enabled = true;
}
姬旭
2023-03-14

感谢@Cody Gray已经提出了这一点;我刚刚扩展了它,所以您可以看到如何实现它以及它是如何工作的

概述
当您的textboxPergjigja.Text的文本发生更改时,您可以连接事件处理程序。

在您创建的处理程序中,您可以使用字符串.IsNullOrWhiteSpace()检查来设置按钮是否应启用

首先:
在表单的构造函数中,订阅textboxPergjigja.Text文本框的TextChanged事件。

public ModulusForm()
{
    InitializeComponent();
    Button btn = new Button();
    btn.Click += new EventHandler(butoniGjenero_Click);

    // Add the subscription to the event:
    textboxPergjigja.TextChanged += textboxPergjigja_TextChanged;
}

下一步:
添加与该事件的正确委托签名匹配的处理程序。

这样地:

public textboxPergjigja_TextChanged(object sender, TextChangedEventArgs e)
{
    // If the text box is not "empty", it will be enabled;
    // If the text is "empty", it will be disabled.
    butoniVerteto.Enabled = !string.IsNullOrWhiteSpace(textBoxPergjigja.Text);            
}

这样,每当textBoxPergjigja文本框中的文本发生更改时;评估将运行,您的按钮将始终正确启用/禁用。

其他信息
您也可以使用textBox.Text.IsNullOrEmpty(),它仍然可以工作-正如@Cody建议的那样

我使用了string.IsNullOrWhiteSpace(),而不是textBox.Text.IsNullOrEmpty(),原因如下:

  • .IsNullOrEmpty()方法仅检查textBox.Text是否为null或字符总数是否等于0

这可能带来的问题是,如果用户只在文本框中输入一个空格,它就不再是空的空的;因此,此检查将返回true。如果程序逻辑要求在文本框中输入实际值,则此逻辑可能存在缺陷。

  • 另一方面,string.IsNullOrWhiteSpace()检查将检查3个条件-如果输入的stringnull为空且仅包含空格字符(空格、换行符等)

我希望这能给你们带来一点额外的信息,让你们对未来做出明智的决定。

 类似资料:
  • 我想禁用按钮,直到文本框中有文本。我怎么做?我是初学者,我什么都不知道,所以我应该添加一个代码就好了。我的代码: 私有无效按钮1\u单击(对象发送者,事件参数e){

  • 问题内容: 我是React JavaScript的新手。我试图在输入字段为空时禁用按钮。React的最佳方法是什么? 我正在执行以下操作: 这样对吗? 这不仅仅是动态属性的复制,因为我也很好奇要从一个元素到另一个元素传输/检查数据。 问题答案: 您需要将输入的当前值保持在状态中(或通过回调函数或sideways或 _< 此处是您应用的状态管理解决方案>_将其值更改传递给父级,以便最终将其传递回您的

  • 我有一个文本框,它是使用简单的禁用html标记禁用的。我需要在单击启用按钮时启用它,再次需要在单击禁用按钮时禁用它。下面是代码-

  • 我正在创建复选框listview,下面是 它的工作but for循环是check1是falseexecute。但是数组列表的最后值为true执行 现在我想要arraylist复选框是获取“false”按钮是启用的。或“true”获取按钮被禁用如何编写条件帮助我

  • 问题内容: 如果字段不正确,我想防止用户单击“注册”按钮。部分原因是必须填写某些字段。但条件开始变得有点长: 我该如何简化呢? 问题答案: 我认为您需要为表单内的输入字段提供属性,因此在表单中填写字段之前将是无效的。同样,您也可以在输入中提供其他验证属性。 例:-

  • 如果电话号码的长度小于11,我希望显示一个报警对话框或禁用提交按钮。 下面是用户输入数字的格式化文本字段的代码: 检查条件的代码是: 代码基本上检查phoneStr的长度是否小于11。如果是,它应该弹出一个对话框,但是.length()方法给出12作为输出,即使文本字段为空。下面的语句输出12。有没有其他方法可以检查这种情况。