以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教两个关于窗口控制的小问题! (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=35619) |
-- 作者:ericsky -- 发布时间:2013/6/28 15:45:00 -- 请教两个关于窗口控制的小问题! 1、模式窗口中,设置一个 【关闭(&E)】的按钮来执行关闭窗口功能。此时如果窗口的 显示控制框 = true,则ALT +E 快捷键有效,反之,则无效。是否正常? 2、在窗口中有若干个控件,如果想利用键盘的上下方向键上下选择控件,该如何通过keydown事件设置代码?就像tab功能键一样,但是tab键是单向的,如何设置成双向移动选择? 请老师指点!谢谢!
|
-- 作者:Bin -- 发布时间:2013/6/28 16:03:00 -- 1.判断一下 e.Form.baseform.ControlBox 即可 2.根据KEYDOWN获得当前元素的 baseControl.TabIndex 然后循环获得下一个TabIndex=这个控件的TabIndex+1的控件再选中它即可.
|
-- 作者:ericsky -- 发布时间:2013/6/28 16:25:00 -- 谢谢bin老师,关于第一个问题是我没有表达清楚,我的问题是: 设置了一个模式窗口,并且显示控制框属性设置为false,再设置了按钮【关闭】,并且加上(&E)的快捷键设置。 此时,快捷键ALT + E 是无效的。只有回过头来,把窗口的显示控制框属性设置为true,快捷键才有效。 但是,通过您的提醒,我还是解决了问题,就是不知道所以然。 关闭按钮代码如下: e.Form.baseform.ControlBox = True e.form.Close |
-- 作者:ericsky -- 发布时间:2013/6/28 17:10:00 -- 谢谢bin老师,分享一下第二个问题的代码,挺好用的,特别是针对大量的窗口数值录入 Select Case e.KeyCode Case Keys.PageDown Dim int As Integer = e.Sender.basecontrol.tabindex For Each cnt As WinForm.Control In e.form.Controls If cnt.basecontrol.tabindex = int + 1 Then cnt.Select() Exit For End If Next Case Keys.Pageup Dim int As Integer = e.Sender.basecontrol.tabindex For Each cnt As WinForm.Control In e.form.Controls If cnt.basecontrol.tabindex = int - 1 Then cnt.Select() Exit For End If Next End Select |
-- 作者:lsy -- 发布时间:2013/6/28 17:20:00 -- 不是吧?方向键本来就很管用的,用不着上下翻页键。 |
-- 作者:ericsky -- 发布时间:2013/6/28 17:30:00 -- 我这里,方向键是一个字符一个字符的移动,碰到长文本或者长数值,上下移动很慢。 |