以文本方式查看主题 - 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/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 -- 确实如此,改名称为标题判断,多谢提醒 |