textbox使用练习

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

首先在form窗口拖一个textbox,tbReceive。将作为接收窗口,设置multiline属性设置为true,scrollBar设置为vertical,这样更加美观。
再拖一个textbox,tbSend,为了美观,属性的设置同tbReceive。
由于是按回车键发送信息,我们触发tbSend的KeyDown事件,键盘按下则触发事件。
[color=blue] /// <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();//清空发送窗口的信息
}
}[/color]
接收窗口时可以接收多条,但是由于发送窗口也是多行的,按回车之后,信息不在了,但是光标已经在下面一行,要解决这个问题,我们还得触发KeyUp事件。
[color=blue]/// <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();
}
}[/color]
这样就可以实现发送信息的功能。
下面还有以下细节问题。
就是一打开form光标定位问题,光标应该在发送窗口,我一开始是使用focus函数,
[color=blue] this.tbSend.Focus();//光标定位[/color]
使用这个函数后,光变还是在接收窗口,后来才知道,是要设置textbox的TabIndex属性,必须是接收窗口的tabindex值要大于等于发送窗口的该属性值,focus函数才生效。
所以这里也想说说tabindex。
TabIndex就是按tab键有顺序的获取定义过的TabIndex元素设置在各个元素之间的焦点,如果不想某个控件被获取焦点,可以设置tabindex为负值,这样的话按他不、就会直接跳过。
下面用一个简单的表单做例:

[color=blue]<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[/color]>

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

t1, t2, t3, t4的TabIndex值可以根据实际需求任意更改,Tab焦点根据值由小到大被获得
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值