| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1883 人关注过本帖
标题:调用一个ole控件后,为什么textbox不能编辑了?
只看楼主 加入收藏
大树临风
Rank: 2
等 级:论坛游民
帖 子:132
专家分:14
注 册:2015-12-9
结帖率:75.68%
收藏
已结贴  问题点数:20 回复次数:11 
调用一个ole控件后,为什么textbox不能编辑了?
请问:我在表单中有一个ole控件,用于打开PDF文档的,当使用改控件打开PDF文档后,我的表单上的textbox控件不能编辑了,只能通过form.hide,form.show,才能重新编辑,但是这样操作会闪屏,很不爽啊!怎么办呢?
搜索更多相关主题的帖子: 调用 控件 编辑 textbox ole 
2021-03-09 14:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10559
专家分:42996
注 册:2014-5-20
收藏
得分:7 
可能是失焦
试试 SetFocus
最后试试将OLE控件放在单独表单

2021-03-09 14:25
大树临风
Rank: 2
等 级:论坛游民
帖 子:132
专家分:14
注 册:2015-12-9
收藏
得分:0 
回复 2楼 吹水佬
尝试setfocus\refresh等等,均不能解决,暂未测试ole控件单独放在一个表单中的情况,希望能有更好的方法,还有一个方法,就是使用messagebox(),但是这样有弹出一个多余的窗口....,会不会是和窗口句柄相关呢?有没有更好的办法
2021-03-09 15:14
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10559
专家分:42996
注 册:2014-5-20
收藏
得分:0 
可以有话,提供相关文件测试看看
2021-03-09 17:20
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:318
专家分:750
注 册:2021-1-9
收藏
得分:7 
FOXITREADER_AX_PRO.OCX   是用这个控件吗?
2021-03-09 18:09
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:318
专家分:750
注 册:2021-1-9
收藏
得分:0 
如果是的话可以这个试一下

thisform.WindowState=1
thisform.WindowState=2
2021-03-09 19:00
大树临风
Rank: 2
等 级:论坛游民
帖 子:132
专家分:14
注 册:2015-12-9
收藏
得分:0 
回复 4楼 吹水佬
olecontrol1控件是阅读PDF的控件,VFP自带的相关控件都不能用,在网上下载了一个“益有文书”的软件,安装之后,就可以用这个控件了
        
......            
            thisform.olecontrol1.openFileInit(1.35,"")
            thisform.olecontrol1.setfileName(CPath,"",0)
            thisform.olecontrol1.SetSelectMode(1)               
            searchjg=thisform.olecontrol1.searchstr(searchwordPDF,1,3000)    &&到这里,就在控件中打开了PDF文档


            thisform.WindowState= 2
            thisform.o_TEXTBOX2.Visible= .T.
            thisform.o_TEXTBOX2.setfocus        &&还试过refresh等等,均不管用,thisform.o_TEXTBOX2始终不能编辑
......
            &&没办法,只能使用如下方式
            thisform.hide
            thisform.show

另外,在调用word程序完成后,也有类似的情况
2021-03-09 22:37
大树临风
Rank: 2
等 级:论坛游民
帖 子:132
专家分:14
注 册:2015-12-9
收藏
得分:0 
回复 7楼 大树临风
还有,如果没有在文档中找到目标,控件会弹出提示窗口,关闭后,就可以编辑文本框了,或者设置一个messagebox(),也可以
2021-03-09 22:40
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:7 
以下是引用大树临风在2021-3-9 22:37:44的发言:

olecontrol1控件是阅读PDF的控件,VFP自带的相关控件都不能用,在网上下载了一个“益有文书”的软件,安装之后,就可以用这个控件了
        
......            
            thisform.olecontrol1.openFileInit(1.35,"")
            thisform.olecontrol1.setfileName(CPath,"",0)
            thisform.olecontrol1.SetSelectMode(1)               
            searchjg=thisform.olecontrol1.searchstr(searchwordPDF,1,3000)    &&到这里,就在控件中打开了PDF文档


            thisform.WindowState= 2
            thisform.o_TEXTBOX2.Visible= .T.
            thisform.o_TEXTBOX2.setfocus        &&还试过refresh等等,均不管用,thisform.o_TEXTBOX2始终不能编辑
......
            &&没办法,只能使用如下方式
            thisform.hide
            thisform.show

另外,在调用word程序完成后,也有类似的情况


o_textbox2控件是不可见还是不能编辑? 另外,该控件置前或后是否有关?还可以测试用代码是否可以编辑?

[此贴子已经被作者于2021-3-10 08:37编辑过]

2021-03-10 08:34
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10559
专家分:42996
注 册:2014-5-20
收藏
得分:0 
回复 7楼 大树临风
1、可以的话,提供安装的控件文件测试。
2、有无可能是其他应用软件的抗干扰抢焦,如运行了360
3、试试用 windows API SetFocus() 或 SetForegroundWindow() 使窗口重新获取焦点:
   声明:
   DECLARE LONG SetFocus IN User32 LONG
   DECLARE LONG SetForegroundWindow IN User32 LONG
   在输入编辑控件的 GotFocus 事件执行:
       SetFocus(thisform.hWnd)
       或:
       SetForegroundWindow(thisform.hWnd)
2021-03-10 10:46
快速回复:调用一个ole控件后,为什么textbox不能编辑了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018568 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved