您现在的位置: 爱51代码网 >> 范文 >> 文章正文
窗体从隐藏状态重新激活时不能设置焦点

wince程序有两个界面,界面A可以点击按钮打开界面B同时隐藏界面A,界面B同样可以点击按钮打开界面A同时隐藏界面B,现在问题出现了,我在界面A的Activated事件里面使用了textbox.Focus()去设置焦点,第一次实例化界面时是可以设置焦点的,第二次从隐藏状态激活界面时,虽然执行Activated事件里面textbox.Focus(),但是界面上并没有获取到焦点(第二次打开界面并没有实例化界面了,只是从隐藏状态重新show()出来)。在winform里面我试过这种方式是可以设置焦点的,不知道为什么在wince程序里面为什么执行了也不能设置焦点

设置焦点需要注意窗体是在SHOW的状态下,同样要可以访问的状态下,设置焦点才有效。

应该是在可访问的状态下的,我是在Activated事件里面执行下面代码的
tbxLocationCode.Text = "";
            lblLocationIDValue.Text = "";
            tbxCommodityCode.Text = "";
            tbxLotNumber.Text = "";
            tbxQuantity.ReadOnly = false;
            tbxQuantity.Text = "";
            lblStockQuantity.Text = string.Format("库位已有商品数量:", "");
            tbxRemark.Text = "";
            tbxCommodityCode.Enabled = false;
            tbxLotNumber.Enabled = false;
            tbxQuantity.Enabled = false;
            tbxLocationCode.Focus();
前面的代码全部都执行成功了,因为界面上的数据全部清空了,同时也设置了部分textbox不能响应,tbxLocationCode.Focus();也执行了但是焦点还是在之前的按钮上面。过程是这样的:我在这个界面上点击“打开B窗体”这个按钮,再从B窗体回到这个界面时,焦点还在“打开B窗体”这个按钮上而不是我在Activated事件里面执行tbxLocationCode.Focus()的tbxLocationCode这个textbox上。 可以考虑窗体显示出来,延时 100ms 再做焦点设置 窗体上 Init 和 Show 的消息,在其中进行处理,设置一下 Timer,在此 Timer 中进行 SetFocus 操作

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    lotus代理中LS如何将字符串保存到
    在lotus BS系统里怎样方便实现统
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    在lotus BS系统里怎样方便实现统
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    WINCE 6.0 系统音量调节无法
    usbcore: registered new in
    error LNK2019: 无法解析的外
    无法打开包括文件:“htc. h”
    u-boot如何传入一个自定义参
    uboot大于256K不能正常启动怎
    两个条码枪虚拟成键盘输入如
    获取sim卡信息出现异常-无法
    WinCE各个文件在NandFlash中
    WinCE各个文件在NandFlash中
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |