Foxtable(狐表)用户栏目专家坐堂 → [求助]代码编辑器的改造问题


  共有3579人关注过本帖树形打印复制链接

主题:[求助]代码编辑器的改造问题

帅哥哟,离线,有人找我吗?
ericsky
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:363 积分:3831 威望:0 精华:0 注册:2012/4/16 20:20:00
[求助]代码编辑器的改造问题  发帖心情 Post By:2018/7/12 10:21:00 [只看该作者]

照着大红袍老师的帖子对代码编辑器做了改造,帖子链接如下:

昨日升级到最新版本,里面有些代码执行不了,应该是代码编辑器里的控件名改变了,比如:
'调用Notepad++
Dim CodeRichTextBox  As Windows.Forms.RichTextBox
Dim frm = args(0)
If frm.name = "Class197" Then
    CodeRichTextBox = frm.Controls("SplitContainer1").Panel1.Controls("MyCodeEditor21").Controls("SplitContainer1").Panel1.Controls("SplitContainer2").panel1.controls("Editor")
Else
    CodeRichTextBox = frm.Controls("MyCodeEditor1").Controls("SplitContainer1").Panel1.Controls("SplitContainer2").panel1.controls("Editor")
End If
执行错误。
--------------------------------
再比如:
Dim frmCodeEditor As Windows.Forms.Form = Windows.Forms.Form.ActiveForm
If frmCodeEditor Is Nothing Then
    Return
End If
If frmCodeEditor.Name <> "Class197" And frmCodeEditor.Name <> "Class260" Then
    Return
End If
Dim tbtn
If frmCodeEditor.name = "Class197" Then
    tbtn = frmCodeEditor.controls("Button5")
Else
    tbtn = frmCodeEditor.controls("btnSQL")
End If
也定义不到tbtn。

请帮忙指点,谢谢!
[此贴子已经被作者于2018/7/12 10:24:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/12 10:27:00 [只看该作者]

测试代码

 

Dim frmCodeEditor As Windows.Forms.Form = Windows.Forms.Form.ActiveForm
If frmCodeEditor.name = "Class260" Then
 
    For Each o As object In frmcodeeditor.controls
        output.show(o.name)
    Next

    Dim tbtn = frmCodeEditor.controls("button5")
    msgbox(tbtn.text)
End If


 回到顶部
帅哥哟,离线,有人找我吗?
ericsky
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:363 积分:3831 威望:0 精华:0 注册:2012/4/16 20:20:00
  发帖心情 Post By:2018/7/12 11:09:00 [只看该作者]

有点甜老师,只搜索到5个控件,其他的怎么搜索?

图片点击可在新窗口打开查看此主题相关图片如下:6c1.tmp.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/12 11:39:00 [只看该作者]

比如

 

Dim frmCodeEditor As Windows.Forms.Form = Windows.Forms.Form.ActiveForm
If frmCodeEditor.name = "Class260" Then
    Dim obj = frmcodeeditor.controls("SplitContainer1")
    Dim editor = obj.panel1.controls("MyCodeEditor21").Controls("SplitContainer1").Panel1.Controls("SplitContainer2").panel1.controls("Editor")
    msgbox(editor.text)
    For Each o As object In obj.panel1.controls("MyCodeEditor21").Controls("SplitContainer1").Panel1.Controls("SplitContainer2").panel1.controls
        output.show(o.name)
    Next
End If


 回到顶部
帅哥哟,离线,有人找我吗?
ericsky
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:363 积分:3831 威望:0 精华:0 注册:2012/4/16 20:20:00
  发帖心情 Post By:2018/7/12 12:10:00 [只看该作者]

搞定,谢谢!
其实窗口里面的控件都没变化,升级后代码编辑器的窗口名变成 "Class260"

 回到顶部
帅哥哟,离线,有人找我吗?
shanshuizhujian
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2222 威望:0 精华:0 注册:2011/12/14 9:56:00
  发帖心情 Post By:2018/7/19 11:32:00 [只看该作者]

命令窗口的是260,其他的是197.通用的好像不行了。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/19 12:43:00 [只看该作者]

Windows.Forms.Form.ActiveForm的name属性,不就行了?

 

其余细节自己调整。


 回到顶部
帅哥哟,离线,有人找我吗?
shanshuizhujian
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2222 威望:0 精华:0 注册:2011/12/14 9:56:00
  发帖心情 Post By:2018/7/27 9:11:00 [只看该作者]

还是没明白


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/27 9:17:00 [只看该作者]

以下是引用shanshuizhujian在2018/7/27 9:11:00的发言:
还是没明白

 

那你就把197改成260,现在所有的命令窗口,都改成了同一的class260了


 回到顶部
帅哥哟,离线,有人找我吗?
shanshuizhujian
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2222 威望:0 精华:0 注册:2011/12/14 9:56:00
  发帖心情 Post By:2018/7/27 9:30:00 [只看该作者]

改成260好像也不行啊,命令窗口的是这样的:CodeRichTextBox = frm.Controls("SplitContainer1").Panel1.Controls("MyCodeEditor21").Controls("SplitContainer1").Panel1.Controls("SplitContainer2").panel1.controls("Editor")
而代码编辑器的是这样的:CodeRichTextBox = frm.Controls("MyCodeEditor1").Controls("SplitContainer1").Panel1.Controls("SplitContainer2").panel1.controls("Editor")
原来一个是197和260,可以进行判断,现在都是260了,但是里面的没有修改,这个怎么判断?

 回到顶部
总数 18 1 2 下一页