删除C#中textBox中的文本选择

时间:2011-07-26 05:51:10

标签: c#

我有一个文本框。我必须允许用户在该文本框中键入一些内容,我还限制用户不要在该文本框中选择键入的文本。我不需要允许在该文本框中输入空格。文本框的开头,我也不需要允许用户输入超过32个字符。这是我的代码。

    private void txtApplication_Title_KeyPress(object sender, KeyPressEventArgs e)
    {
        txtApplication_Title.Text = txtApplication_Title.Text.Remove(txtApplication_Title.SelectionStart, txtApplication_Title.SelectionLength);
        if (txtApplication_Title.Text.Length== 0)
        {
            e.Handled = (e.KeyChar == (char)Keys.Space);


        }
        int count_charac = txtApplication_Title.Text.Length + 1 ;
        if (count_charac > 32)
        {
            lblApplication_name.Text = data_variables.RES_TXT_STRING_EXCEEDING_APPLICATION_NAME;


            timer1.Interval = 7000;

            timer1.Enabled = true;

            timer1.Tick += new System.EventHandler(OnTimerEvent_Application_name);

        }

    }
    public void OnTimerEvent_Application_name(object sender, EventArgs e)
    {

            lblApplication_name.Text = " ";


 timer1.Dispose();
    }

这个代码在这里。我能够将用户限制为32个字符。我尝试在开始时按空格它不允许我。它允许使用Shift +箭头键选择文本。 我知道如何阻止选择。另一件事是假设我尝试      你好,我选择地狱并直接按空格,开始允许文本框中的空格。任何人都可以帮助我。提前谢谢

4 个答案:

答案 0 :(得分:1)

<德尔> 回答标题中的问题:要从TextBox中删除选定的文本,请使用: myTextBox.Text = myTextBox1.Text.Substring(myTextBox1.SelectionStart,myTextBox1.SelectionLength);

如果您想阻止用户选择文字:

  1. 使用Label代替TextBox
  2. 处理label.KeyPress事件,然后仅添加允许的文本和您想要的自定义功能。

答案 1 :(得分:0)

可以使用textchanged事件代替KeyPress事件。

文本框具有最大长度属性。另外,只需调用TextBox.Text = TextBox.Text.TrimStart()将在开头删除任何空格

答案 2 :(得分:0)

您需要观看TextChanged事件 - 只要文本框的内容发生变化,就会通知您。您可以使用user623879建议的TrimStart()方法,而不是检查长度是否为0。

当您说删除选择时,您的意思是删除用户选择的文本吗?如果您只想让选择“消失”,可以将SelectionLength属性设置为0.

答案 3 :(得分:0)

您需要在文本框KeyPress,MouseUp和MouseMove事件上将SelectionLength设置为0.