对UI设计我们应该不陌生了,自己做过几个小系统,像学生管理系统、机房收费系统等都是客户端模式,当然还有我们的牛腩新闻发布系统,这是我们第一次接触的比较正规的web系统。现在就vb.net的一些UI设计小技巧给大家做个总结,希望对我们的重构或合作都有所帮助吧。
合作的时候我是负责U层的,所以设计这里就要尽可能的想到“全心全意为人民服务”。因为用户使用的时候就是跟页面交互嘛,对于系统内部的逻辑设计等都不会去了解,这就又说到了UI设计的重要性了,概念性的大家自己去查,这里只做一些小技巧。
1、提示框
U层的设计少不了提示框,我们可不能在弹出提示框的时候给用户看到层标题,以下是一些小实例及其对应的代码。
代码:
<span style="font-size:24px;">MessageBox.Show("确定要退出程序吗?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)</span>
效果:
注意事项:
这里要说的是,我们一般的提示框是只有一个“确定”或“是”按钮,换句话说就是用户没有选择权。但是对于这个退出程序,用户是要选择的,这个提示框应该是出现在“Private Sub Form_FormClosing”中的,通过添加if~else~end
if来判断是取消操作还是退出程序关闭窗体。对于我们的vb.net,else中的事件应该是“e.Cancel
= True”。
完整代码描述:
<span style="font-size:24px;">IfMessageBox.Show("确定要退出程序吗?", "提示", MessageBoxButtons.YesNo,MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then ’事件 Else e.Cancel= True End if 代码: MessageBox.Show("充值成功!","系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)</span>
效果:
代码:
<span style="font-size:24px;">MessageBox.Show("请输入卡号!","系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)</span>
效果:
代码:
<span style="font-size:24px;">MessageBox.Show("该用户不存在,请重新输入!","系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error)</span>
效果:
当然还有很多类型的,大家可以根据自己的喜好设计,这里提供一张icon说明表:
2、enter键响应
一个文本框输入完成,我们可以用enter键来响应确定按钮,要想做的比较完善,就要每一个文本框都写一个以下这样一段代码,这样做是非常麻烦的,但是我还没有想出更好的方法,如果大家有什么好方法,还希望不吝赐教啊!
''' <summary> ''' Enter键响应登陆按钮 ''' </summary> ''' <paramname="sender"></param> ''' <paramname="e"></param> ''' <remarks></remarks> Public Sub txtPassword_KeyUp(ByVal senderAs Object, ByVal e As KeyEventArgs) Handles txtPassword.KeyUp 'Enter键进入 If e.KeyCode = Keys.Enter Then btnOK.PerformClick() End If End Sub
3、清空、聚焦
当然还不要忘了我们的清空聚焦啊,清空可以调用一个公共方法,如下:
''' <summary> ''' 清除文本框的数据 ''' </summary> ''' <param name="frm">当前窗体</param> '''<returns>返回布尔值,如果为真则清除成功</returns> ''' <remarks></remarks> Public Function ClearAll(ByVal frm As Form)As Boolean Dim control As New Control For Each control In frm.Controls'遍历窗体中所有的控件 If TypeOf control Is TextBox Then'判断控件类型,如果是文本框清空 control.Text = "" Else If TypeOf control Is ComboBoxThen '判断控件类型,如果是下拉列表清空 control.Text = "" End If End If Next Return True End Function
聚焦当然就简单了,直接
<span style="font-size:24px;">Text.Focus()</span>
4、控件锁定
如果我们让一个Text框不可用,直接用属性Enable=False就噢啦,但是如果整个窗体的text框都锁定,那一个个来是不是就麻烦多了?同上设计。
''' <summary> ''' 遍历窗体中所有控件,如果没有锁定,则进行锁定 ''' </summary> ''' <paramname="frm">当前窗体</param> '''<returns>返回true锁定成功,返回false锁定失败</returns> ''' <remarks></remarks> Public Function Locked(ByVal frm As Form)As Boolean Dim control As New Control For Each control In frm.Controls'遍历窗体中所有的控件 If TypeOf control Is TextBox Then'判断控件类型,如果是文本框 control.Enabled = False '锁定控件 ElseIf TypeOf control Is ComboBoxThen '判断控件类型,如果是组合框 control.Enabled = False '锁定控件 End If Next Return True End Function
5、窗体字体统一
这里用了一个比较笨的方法,就是在一开始建窗体时就修改了它的字体,这样往上加控件就是一致的了,就是每建一个新窗体都要修改一次,挺麻烦的,这里还要请高人指教啊!
其他还有很多,大家有什么需要欢迎给我来信~