`

textbox使用练习

    博客分类:
  • c#
阅读更多
今天老师布置了一个任务给我,是要做一个简单的form,实现发送信息,不涉及socket编程,只是将同一个form中的发送窗口的信息按回车键,然后消息在接收窗口出现。我用的是textbox。

首先在form窗口拖一个textbox,tbReceive。将作为接收窗口,设置multiline属性设置为true,scrollBar设置为vertical,这样更加美观。
再拖一个textbox,tbSend,为了美观,属性的设置同tbReceive。
由于是按回车键发送信息,我们触发tbSend的KeyDown事件,键盘按下则触发事件。
/// <summary>
        /// 发送窗口键盘按下事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbSend_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)//如果键盘按下回车键
            {
                if (tbReceive.Text == "")
                {
                    tbReceive.Text = "发送:" + strStationID + tbSend.Text;
                }
                else
                {
                    tbReceive.Text = tbReceive.Text + "\r\n" + "发送:" + strStationID + tbSend.Text;
                }
                tbSend.ResetText();//清空发送窗口的信息
            }
        }

接收窗口时可以接收多条,但是由于发送窗口也是多行的,按回车之后,信息不在了,但是光标已经在下面一行,要解决这个问题,我们还得触发KeyUp事件。
/// <summary>
        /// 发送窗口的键盘弹回事件,清空发送窗口的信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbSend_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)//如果按回车键返回
            {
                tbSend.ResetText();
            } 
        }

这样就可以实现发送信息的功能。
下面还有以下细节问题。
就是一打开form光标定位问题,光标应该在发送窗口,我一开始是使用focus函数,
this.tbSend.Focus();//光标定位
使用这个函数后,光变还是在接收窗口,后来才知道,是要设置textbox的TabIndex属性,必须是接收窗口的tabindex值要大于等于发送窗口的该属性值,focus函数才生效。
所以这里也想说说tabindex。
TabIndex就是按tab键有顺序的获取定义过的TabIndex元素设置在各个元素之间的焦点,如果不想某个控件被获取焦点,可以设置tabindex为负值,这样的话按他不、就会直接跳过。
下面用一个简单的表单做例:

<form name="testform" method="post" action="">
<input type="text" name="t1" tabindex="1" />
<input type="text" name="t2" tabindex="2" />
<input type="text" name="t3" tabindex="3" />
<input type="submit" name="t4" value="SendInfo" tabindex="-1" />
</form
>

使用Tab键,获取焦点的顺序就是通过tabindex的值大小来排序的。上面的例子依次获得焦点的是t1, t2, t3, 到t4的时候,由于TabIndex的值为-1,所以t4不会获得焦点,而是直接跳到下一个获取焦点的元素上。

t1, t2, t3, t4的TabIndex值可以根据实际需求任意更改,Tab焦点根据值由小到大被获得


分享到:
评论

相关推荐

    C#TextBox、ToolTip、ErrorProvide的使用例子

    其实就是自己练习时写的一些代码,作为一个小练习什么的,其中的控件、组件有TextBox、ToolTip和ErrorProvide

    c#、asp.net基础程序练习

    private void textBox1_TextChanged(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { int testint1 = 1000; //定义变量 int testint2 = 60; testint2 += 60; ...

    c#实验一源代码 使用软件VS

    上机练习题 (1)编写一个Windows应用程序,计算n!,n从键盘输入。 要求:利用Textbox输入n,利用for语句实现阶乘的运算,利用只读的Textbox输出n的阶乘。

    winForm新手练习的notepad

    运用了MenuStrip菜单和textBox文本框 用C#语言对文件的进行操作:创建txt文件,通过文件流保存文档,可以在文本框里对语句进行编辑和格式 适合学习winForm新手练习使用。

    C# 判断质数练习

    利用WPF C#语言实现: 1.1-N质数的筛选 2.textbox的控件使用 3.后台的数据

    jQuery TextBox自动完成条

    刚开始学jQuery,于是想试试学习效果,所以就做了个这个TextBox自动完成条,练习练习。请牛人们别笑话。

    RichTextBox 练习 保存和读取图片数据库

    RichTextBox 练习,保存和读取图片数据库 QQ:292258449

    C#入门——面向对象等,代码+注释

    第14天 MD5加密 03WindowsForms练习 05timer跑马灯练习 06timer闹钟练习不是完整的 08单选和多选练习 01MD5加密 04textBox控件显示输入的文本 02windows控件弹出窗体练习 07简单记事本应用 第15天 01浏览器控件 02...

    Visual.Basic.6大学教程.pdf

    10.3 TextBox控件 309 10.4 MaskEdit控件 311 10.5 ComboBox控件 314 10.6 ListBox控件 318 10.7 滚动条 322 10.8 Slider控件 324 10.9 菜单 325 10.10 弹出菜单 328 10.11 MsgBox函数 329 小结 333 自测练习 335 自...

    c#题库.doc

    对于初学来哦说是个不错的练习题 1. C#语言中,值类型包括:基本值类型、结构类型和( )。 A. 小数类型 B. 整数类型 C. 类类型 D. 枚举类型 2.类的字段和方法的默认访问修饰符是( )。 A. public B. ...

    C#上机4答案 整个程序代码

    if (textBox1.Text.Trim() == "") { MessageBox.Show("请输入卡号", "输入提示", MessageBoxButtons.OK, MessageBoxIcon.Information); textBox1.Focus(); return false; } else { return true; }

    VB实验报告.doc

    实验目的 1 了解Visual Basic的安装 2 掌握启动与退出Visual Basic 3 掌握建立、编辑和运行一个简单应用程序的全过程 4 掌握基本控件的使用 二、实验环境 VB6.0 三、实验内容 1、编写一程序,在文本框中统计在该...

    AspNet MVC 开发技术

    1.1.2 使用.net framework编写应用程序 4 1.2 C#的含义 7 1.2.1 用C#能编写什么样的应用程序 7 1.2.2 本书中的C# 8 1.3 visual studio 2010 8 1.3.1 visual studio 2010 express产品 9 1.3.2 解决方案 9 1.4 小结 9 ...

    C#课堂练习

    /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose...

    DataList中TextBox onfocus调用后台void静态方法及获取相应行数

    Insus.NET尝试做了一下,算是练习了。 Insus.NET的测试演示: xxx.aspx: 代码如下:”dlItemGeneral” runat=”server” CellPadding=”0″ CellSpacing=”0″ Width=”100%” xss=removed&gt; &lt;ItemTemplate&gt; ”...

    C#初学练手,小小计算器,可鼠标点按钮,也可以按键,上面会显示操作记录,含项目所有文件

    开始学习C#之路,起手当然是小小计算器了,这个小软件,包含了很多C#的精华,比如TextBox只处理数字和加减符号等,TextBox设置多行并一直显示最下面,编译生成更改自己的图标等......总之,麻雀虽小,五脏俱全!非常...

    四六级在线考试系统毕业设计

    关于考试网站设计的~/MasterPage.master" AutoEventWireup="true" CodeFile=... &lt;TextBoxStyle Font-Size="0.8em" /&gt; BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#990000" /&gt;

Global site tag (gtag.js) - Google Analytics