只有当用户向textBox输入任何文本以便启用button1时,我该怎么做?

时间:2012-10-12 14:39:45

标签: c#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GatherLinks
{
    public partial class CrawlLocaly : Form
    {
        public CrawlLocaly()
        {
            InitializeComponent();

        }

        public string getText()
        {
            return textBox1.Text;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(textBox1.Text))
            {
                DialogResult = DialogResult.OK;

            }
            else
            {

            }
        }




    }
}

在Form1中我显示此表单及其textBox:

private void button6_Click(object sender, EventArgs e)
        {

            using (var w = new StreamWriter(keywords))
            {
                crawlLocaly1 = new CrawlLocaly();
                crawlLocaly1.StartPosition = FormStartPosition.CenterParent;
                DialogResult dr = crawlLocaly1.ShowDialog(this);

我想在crawlLocaly新表单中进行操作,当我在Form1中单击并打开/显示新表单上的新表单按钮1将是Enabled = false并且一旦用户在新表单按钮1中键入textBox中的任何内容启用为true,然后用户才能点击新表格中的button1即可(新表格中的按钮文字正常)。

尝试在新表单中使用button1 textchanged事件,但它没有用。只有点击它后按钮才变为假。

3 个答案:

答案 0 :(得分:4)

您可以尝试使用此代码 - 基于TextChanged event

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
   if(TextBox1.Text.Trim().Length > 0)
   {
      Button.Enabled = true;
   }
}

Nota:将Button.Enabled初始化为false;在控制

答案 1 :(得分:2)

如果你想把它保存在C#中你可以这样做,不要忘记将AutoPostBack设置为True并测试长度是否为0以再次禁用该按钮:

    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" Enabled="false" />
    <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true" OnTextChanged="TextBox1_OntTextChanged" />

protected void TextBox1_OntTextChanged(object sender, EventArgs e)
{
    if (TextBox1.Text.Length > 0)
    {
        Button1.Enabled = true;
    }
    else
    {
        Button1.Enabled = false;
    }
}

答案 2 :(得分:0)

private void textBox1_TextChanged(object sender, EventArgs e) {
    button1.Enabled = true;
}