以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]升级到2019-9-1版本后,外部编辑器找不到了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140181)

--  作者:天一生水
--  发布时间:2019/8/31 7:25:00
--  [求助]升级到2019-9-1版本后,外部编辑器找不到了
升级到2019-9-1版本后,外部编辑器的按钮找不到了,请教老师怎么办?
谢谢!
代码如下:

计划1

 

Dim frmCodeEditor As system.Windows.Forms.Form = system.Windows.Forms.Form.ActiveForm

If frmCodeEditor Is Nothing Then Return

\'CurrentTable.Current("第一列") = frmCodeEditor.Name

 

If frmCodeEditor.Name <> "Class197" And frmCodeEditor.Name <> "Class260" Then Return

If frmCodeEditor.Controls("BtnNotepadEdit") IsNot Nothing Then Return

Dim tbtn As object

If frmCodeEditor.name = "Class197" Then

    tbtn = frmCodeEditor.controls("Button5")

Else

    tbtn = frmCodeEditor.controls("Button1")

End If

 

Dim BtnNotepadEdit As New system.Windows.Forms.Button

With BtnNotepadEdit

    .Name = "BtnNotepadEdit"

    .Anchor = system.windows.Forms.AnchorStyles.Left Or system.windows.Forms.AnchorStyles.Bottom

    .Top = tbtn.Top

    .Left = 300

    .Size = tbtn.Size

    .Text = "NotePad++"

    AddHandler .Click,AddressOf NotepadEdit_Click

End With

frmCodeEditor.Controls.Add(BtnNotepadEdit)

 

 

自定义函数

 

NodePadEdit

 

\'调用Notepad++

\'Dim CodeRichTextBox  As System.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 CodeRichTextBox  As System.Windows.Forms.RichTextBox

Dim frm = System.windows.Forms.Form.activeform

If frm IsNot Nothing AndAlso frm.name = "Class260" Then

\'msgbox(frm.text)

    If frm.text = "命令窗口" 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

End If

 

 

FileSys.WriteAllText(ProjectPath & "Temp\\Code.Fox",CodeRichTextBox.Text,False)

CodeRichTextBox.SelectAll

Dim Proc As New Process

Proc.WaitForClose = True

\'Proc.File = "notepad"

Proc.File = ProjectPath & "Temp\\notepad++"

Proc.Arguments = ProjectPath & "Temp\\Code.Fox"

Proc.Start

Dim CodeStr As String = FileSys.ReadAllText(ProjectPath & "Temp\\Code.Fox")

If CodeStr = CodeRichTextBox.Text Then Return Nothing

CodeRichTextBox.Text = CodeStr

 

全局代码

 

Default

 

\'启动NotePad++

Public Sub NotepadEdit_Click(ByVal sender As Object, ByVal e As EventArgs)

    Functions.Execute("NodePadEdit", sender.findform)

End Sub

[此贴子已经被作者于2019/8/31 7:25:35编辑过]

--  作者:有点蓝
--  发布时间:2019/8/31 8:19:00
--  
这个没有办法,而且这种更改Foxtable底层功能的用法也不受官方的认可和支持。因为防盗版的原因,各种内部类型名称是可能会变的,没有办法保持一致
--  作者:天一生水
--  发布时间:2019/8/31 9:17:00
--  
问题是代码超过4k行左右,光标就不能停在最后一行了,往往是光标往下移动一行,马上就回跳几十行,移动的越多,回跳的就越多。
根本无法继续编辑,因此,恳请老师研究一下如何解决这个问题。
原生的编辑器不跳转,或者允许继续使用外部插件都可以。
谢谢!


图片点击可在新窗口打开查看此主题相关图片如下:录制_2019_08_31_09_03_47_650.gif
图片点击可在新窗口打开查看


--  作者:小马甲
--  发布时间:2019/8/31 9:38:00
--  
名称会变,标题不变


--  作者:有点蓝
--  发布时间:2019/8/31 9:48:00
--  
把代码分隔为多个小的内部函数调用
--  作者:sharpspear
--  发布时间:2019/8/31 11:16:00
--  
升级没必要考虑第三方编辑器是没问题的,但是这个原生编辑器有问题,真的需要修正,提的有道理。也希望能大幅度改进编辑器的功能。
--  作者:天一生水
--  发布时间:2019/10/3 8:25:00
--  
谢谢“小马甲”的提示!
--  作者:y2287958
--  发布时间:2019/10/3 8:30:00
--  
确实如此,改名称为标题判断,多谢提醒