以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  简单改造编辑器  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26226)

--  作者:blackzhu
--  发布时间:2012/11/27 16:03:00
--  简单改造编辑器

应  飞的要求将此简单改造代码编辑器的方法上传:

详细如下:

Foxtable中调用Notepad++写代码的方法

1. 下载一个nodepad++放在D盘下(放其它地方也行,改一下后面的代码就是了),然后在Notepad++的视图菜单下点击自定义语言格式,在里面新建一个语言,名称为Foxtable,后缀设置为Fox,各项设置去语言设计里面找一下vb的复制过来,然后其它的根据个人喜好修改好(这里不多介绍,具体百度一下Notepad++的用法)
2. 在计划管理新建一个计划(用于在编辑器上面创建按钮),名称为编辑器按钮,间隔300毫秒,代码如下:
Dim frmCodeEditor As Windows.Forms.Form = Windows.Forms.Form.ActiveForm
If frmCodeEditor Is Nothing Then Return
If frmCodeEditor.Name <> "frmCommand" And frmCodeEditor.Name <> "frmCodeEditor" Then Return
If frmCodeEditor.Controls("BtnNotepadEdit") IsNot Nothing Then Return
Dim BtnFind As Windows.Forms.Button = frmCodeEditor.Controls("Button4")
Dim BtnNotepadEdit As New Windows.Forms.Button
With BtnNotepadEdit
    .Name = "BtnNotepadEdit"
    .Anchor = windows.Forms.AnchorStyles.Left Or windows.Forms.AnchorStyles.Bottom 
    .Top = BtnFind.Top
    .Left = 96
    .Size = BtnFind.Size
    .Text = "NotePad++"
    AddHandler .Click,AddressOf NotepadEdit_Click
End With
frmCodeEditor.Controls.Add(BtnNotepadEdit)
3. 新增一个内部函数,名称为NodePadEdit,代码如下:
\'调用Notepad++
Dim CodeBox As Windows.Forms.RichTextBox = CodeRichTextBox
FileSys.WriteAllText(ProjectPath & "Temp\\Code.Fox",CodeRichTextBox.Text,False)
CodeRichTextBox.SelectAll
Dim Proc As New Process
Proc.WaitForClose = True
Proc.File = "D:\\Notepad++\\notepad++.exe "
Proc.Arguments = ProjectPath & "Temp\\Code.Fox"
Proc.Start
Dim CodeStr As String = FileSys.ReadAllText(ProjectPath & "Temp\\Code.Fox")
If CodeStr = CodeBox.Text Then Return Nothing
CodeBox.Text = CodeStr
4. 在全局代码中加入以下代码:
\'此函数用于返回代码编辑器的RichTextBox控件
Public Function CodeRichTextBox() As Windows.Forms.RichTextBox 
    Dim frmCodeEditor As Windows.Forms.Form = Windows.Forms.Form.ActiveForm
    If frmCodeEditor Is Nothing Then Return Nothing
    If frmCodeEditor.Name <> "frmCommand" And frmCodeEditor.Name <> "frmCodeEditor" Then Return Nothing
    Dim SplitCtl As Windows.Forms.SplitContainer
    If frmCodeEditor.Name = "frmCommand" Then 
        SplitCtl = frmCodeEditor.Controls("SplitContainer1")
        SplitCtl = SplitCtl.Panel1.Controls("MyCodeEditor21").Controls("SplitContainer1")
    Else
        SplitCtl = frmCodeEditor.Controls("MyCodeEditor1").Controls("SplitContainer1")
    End If
    SplitCtl = SplitCtl.Panel1.Controls("SplitContainer2")
    Dim RichTextBox As Windows.Forms.RichTextBox = SplitCtl.PaneL1.Controls("Editor")
    Return RichTextBox 
End Function
 
\'启动NotePad++
Public Sub NotepadEdit_Click(ByVal sender As Object, ByVal e As EventArgs)
    Function.ecute("NodePadEdit")
End Sub
 
重启项目之后打开命令窗口或者代码编辑器就会发现下面多出一个按钮,点击之后就可以在notepad++中编辑代码了
 
[此贴子已经被作者于2012-11-28 13:11:22编辑过]

--  作者:cqlpjks
--  发布时间:2012/11/27 16:17:00
--  
学习!
--  作者:blueskyyq
--  发布时间:2012/11/27 16:37:00
--  
朱兄动作挺快的,再顶一个
--  作者:lin_hailun
--  发布时间:2012/11/27 17:29:00
--  
 看着头晕!给个例子吧,小朱。
--  作者:飞
--  发布时间:2012/11/27 17:58:00
--  

图片点击可在新窗口打开查看

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.gif
图片点击可在新窗口打开查看

 


 

追加一个包,用于设置foxtable关键字高亮与自动完成功能,用法内详

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:foxtable?epad++.zip

[此贴子已经被作者于2012-11-28 12:39:36编辑过]

--  作者:布莱克朱
--  发布时间:2012/11/27 19:16:00
--  
不是我的东西,是飞大侠叫我发的.


另外 我可不是小朱,是老朱了.

--  作者:xmj09663
--  发布时间:2012/11/27 19:25:00
--  
小朱    图片点击可在新窗口打开查看
--  作者:小猪鑫鑫
--  发布时间:2012/11/27 19:34:00
--  
羡慕嫉妒没有恨,虽说看不懂,但还是收藏,以待来日图片点击可在新窗口打开查看
--  作者:bohe
--  发布时间:2012/11/27 19:59:00
--  
看着头晕,没看到具体方法
--  作者:pyh6918
--  发布时间:2012/11/28 7:23:00
--  
太高科技了