zoukankan      html  css  js  c++  java
  • c#使用文本框TextBox使用ctr+enter直接跳到指定Button

    用TextBox类进行封装,是按钮控件外最常使用的控件,常用于接收文本输入。TextBox类派生于TextBoxBase类。

    默认情况下,文本框控件只接受单行文本,此时只能水平改变控件大小而不能垂直改变。通过设置TextBox的Multiline属性为true,可以使用多行文本框。

    文本框属性

    • Text属性,获取用户输入到文本框中的文本。
    • TextLength属性,获取文本框控件中文本的长度
    • Lines属性,对于多行文本框,除了可以使用Text属性获取文本外,还可以使用Lines属性,它返回一个字符串的数组,每个数组元素对应一行文本。

    注意:在Lines数组中的元素没有必要与文本框控件的物理行相对应。如果允许文本换行,那么无论文本占了多少物理行,在Lines数组中都只是一个元素。可以在属性窗口中使用Lines属性为多行文本框提供初始文本。在属性窗口中选择Lines属性,将显示一个说明为”…”的小按钮。单击它就会显示”字符串采集编辑器”对话框,在其中可以输入控件文本。

    • ReadOnly属性:当它设置为true时,只能浏览而不能修改文本框中显示的内容。
    • MaxLength属性:设置文本框能输入的最大字符数
    • WordWrap属性:选择每行的文本是可以扩展超出控件边缘(false)或是在控件边界处自动换行(true),默认值为true。
    • ScrollBars属性:指定是否使用以及使用怎样的滚动条。属性值必须是枚举类型ScrollBars的值:None、Horizontal(水平)、Vertical(垂直)、Both。

    注意:如果文本框的WordWrap属性设置为true,则水平滚动条不显示

    • BorderStyle属性:管理文本框控件的外观。属性值必须是枚举类型BorderStyle的值:None、FixedSingle、Fixed3D(默认值)。
    • SelectedText、SelectionStart、SelectionLength属性:用来获取或设置当前在文本框中选择的文字。

    例子:

    1
    2
    3
    4
    
    textBox1.Text = "这是一个文本框控件";
    textBox1.SelectionStart = 4;
    textBox1.SelectionLength = 3;
    string selection = textBox1.SelectedText; //selection的内容为"文本框"
    • PasswordChar属性:用来指定文本框的屏蔽字符。
    • AcceptsReturn、AcceptsTab属性:通常情况下,不能在文本框中使用Enter键换行或是Tab键输入制表符,这两个键的默认行为是触发窗体的AcceptButton属性的Click事件和切换输入焦点。

    AcceptsReturn属性,设置为true则在指定的控件中按下Enter键将会在其中新建一行文本;如果为false,则要按下Ctrl + Enter才能实现上述功能,如果只按下Enter将是激活窗体的默认按钮,如果没有设置窗体的默认按键,按下Enter还是会在新建一行文本。

    AcceptsTab属性,设置为true则在指定的控件中按下Tab键时会在其中输入一个制表符;如果为false,则要使用Ctrl + Tab组合键来实现上述功能,单独按下Tab键只是切换焦点。

    注意:如果文本框不支持多行输入,则这两个属性无效。

    文本框的方法

    • AppendText:向文本框中附加文字
    • Clear:清除文本框中的所有文字
    • ClearUndo:清除有关撤销操作的信息
    • Copy:把文本框中的当前选择文字复制到剪贴板
    • Cut:把文本框中的当前选择文字移动到剪贴板
    • Paste:使用剪贴板中的内容替换文本框中当前选择的内容
    • Select:在文本框中选择指定范围的文字
    • SelectAll:选择文本框中的所有内容
    • Undo:撤销文本框中的最后一次修改操作

    文本框的事件

    TextChanged事件:在TextChanged事件的处理方法或是OnTextChanged方法中不要试图修改本文本框的内容,否则将循环触发TextChanged事件,造成死循环。

    具体操作如下:

            private void textBoxSend_KeyPress(object sender, KeyPressEventArgs e)
            {
                switch (e.KeyChar)
                {
                    case (char)Keys.LineFeed: //#10
                    case (char)Keys.Enter: //#13
                        if (Control.ModifierKeys == Keys.Control)
                        {
                            ((TextBox)sender).Clear();// 清空文本内容
                            e.Handled = true; // 使输入失效
                        }
                        break;
                }
            } 

    窗体的事件:

            private void MessageSend_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter && e.Control)
                {
                    buttonSend.PerformClick();
                    textBoxSend.Text = null;
                    textBoxSend.Select(0, 0);
                    textBoxSend.ScrollToCaret();
                }
                if (e.KeyCode ==Keys.Escape)
                {
                    buttonClose.PerformClick();
                }
            }
  • 相关阅读:
    Struts数据效验
    Struts2中国际化
    ValueStack对象
    Ognl表达式语言
    Struts2拦截器
    ubuntu下tomcat运行不起来解决
    Windows 下的SSH客户端
    远程管理控制ssh
    linux用户和组账户管理
    搭建Java服务器,并且实现远程安全访问linux系统
  • 原文地址:https://www.cnblogs.com/laojie4321/p/2494135.html
Copyright © 2011-2022 走看看