重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
DomainUpDown 控件在外观上都是由一个文本框和一对可以上下移动列表的箭头组成 如下图一所示
我们提供的服务有:成都做网站、网站设计、外贸营销网站建设、微信公众号开发、网站优化、网站认证、沙依巴克ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的沙依巴克网站制作公司
图一 控件外观
其功能类似于组合框 您可以将任何类型的数据放入列表 同时在文本框中显示单个字符串值 让用户可以通过单击上箭头和下箭头来浏览数据
在工具箱中 它的图标显示如下图二所示
图二 工具箱中的DomainUpDown 控件
DomainUpDown 控件的主要属性为 Items ReadOnly Wrap
一 改变文字显示与上下箭头的方向
我们可以通过 TextAlign 属性来改变控件中的文本对齐方式 通过 UpDownAlign 属性改变它的上下按钮对齐方式
示例 在DomainUpDown 控件 Text 属性中输入 即文本框显示的字符 把 TextAlign 属性 设置为Center UpDownAlign 属性设置为Left 显示效果如下图三所示
图三 改变DomainUpDown 控件显示外观
二 ReadOnly 属性
ReadOnly 属性用于设置用户是否只能使用向上或向下按钮更改文本 默认值为False 如果为False 则用户可以在文本框中进行输入 如果为True 则文本输入框变为灰色 用户只能通过Up Down按钮来选择列表 且当用户使用键盘键入的时候 控件自动完成匹配 如假设列表中存在下面三个字符串的项 aa b 控件ReadOnly 属性为True 则当我们在文本框中键入 时候 控件将自动匹配字符串 如下图四所示
图四 DomainUpDown 自动匹配用户输入
三 为DomainUpDown 控件添加\删除列表项
通过 字符串集合编辑器 编辑
我们可以在设计视图中为 DomainUpDown 控件添加或者删除列表项 步骤如下
在 属性 窗口中找到 Items 属性 单击属性后的 按钮 弹出 字符串集合编辑器 然后进行编辑 注意每行为一个项
使用代码添加\删除
可以使用 Items 集合的 Add 方法将项添加到项列表的末尾 使用 Insert 方法将项插入到列表中的指定位置
可以使用 Items 集合的 Remove 方法按照名称移除项 使用 RemoveAt 方法按照项的位置移除项
示例代码如下
在控件列表尾部添加一个字符串 cccc
DomainUpDown Items Add( cccc )
把字符串 cccc 插入到索引位置 (提示 索引是从 开始)
DomainUpDown Items Insert( cccc )
删除列表中的字符串为 cccc 的项
DomainUpDown Items Remove( cccc )
删除列表中索引位置为 的项
DomainUpDown Items RemoveAt( )
使用Clear方法清除DomainUpDown 控件的所有项
DomainUpDown Items Clear()
四 DomainUpDown 控件的其它属性
Sorted 属性 指示项集合是否排序 当 Sorted 设置为 true 时 将按字母顺序对集合排序 默认为False
Wrap 属性 当 Wrap 设置为 true 时 如果达到了集合中的最后一项并继续滚动 则列表将从第一项重新开始 看起来像是连续的
lishixinzhi/Article/program/net/201311/11362
keypress:操作窗格具有焦点并按下某个键时发生,不能由非字符键引发
keydown:按下键盘按键时发生
keyup:键盘按键弹起时发生
以上事件触发的时间不同,顺序 down press up
keychar:按键对应的字符
keycode:获取 KeyDown 或 KeyUp 事件的键盘代码
char不能获取 控制键如tab Insert delete 方向键等
用API函数,以下代码Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As LongPrivate Const WS_EX_LAYERED = H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = H2
Private Const LWA_COLORKEY = H1Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMosT = -1
Private Const SWP_NOMOVE = H2
Private Const SWP_NosIZE = H1
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_KEYDOWN = H100
Const WM_KEYUP = H101
Const WM_CHAR = H102
Const VK_F1 = H70
Private Sub SendF1(hwnd) '调用这个过程即可对目标窗体发送F1键
Call PostMessage(hwnd, WM_KEYDOWN, VK_F1, 0)
Call PostMessage(hwnd, WM_KEYUP, VK_F1, 0)
End Sub这里是发送F1的实例,各个按键对应的虚拟键码,要到网上查
Private Sub DataGridView1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress
Select Case Asc(e.KeyChar)
Case 13
SendKeys.SendWait("{TAB}")
SendKeys.SendWait("{UP}")
End Select
End Sub
Dim cmd As New OleDbCommand("update 表1 set " 变量a "='同学1' where 学号='123456'", Me.OleDbConnection1)