Foxtable(狐表)用户栏目专家坐堂 → 狐表窗口如何引用三方编辑器


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

主题:狐表窗口如何引用三方编辑器

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6230 威望:0 精华:0 注册:2018/5/10 9:05:00
狐表窗口如何引用三方编辑器  发帖心情 Post By:2021/9/10 9:00:00 [显示全部帖子]

有部分编辑公式的需求,狐表内如何引用三方的dll作为编辑器呢
百度了下 ICSharpCode.TextEditor.dll 在cs环境下作为代码编辑控件比较牛逼

https://www.cnblogs.com/maijin/articles/4660684.html

https://www.php.cn/csharp-article-361852.html

https://blog.csdn.net/fxziyu/article/details/85325196
[此贴子已经被作者于2021/9/10 9:03:50编辑过]

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6230 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2021/9/10 9:32:00 [显示全部帖子]

看着挺好的 
想引用到窗口内还是有困难呀,
dll添加进来了,就是不知道在窗口内如何用它, 就是想用 支持T-SQL的编辑器,定义sql计算公式需要用到

SharpDevelop (#develop)有很多“副产品”,其中最出名的应算SharpZipLib (#ziplib),纯C#的ZIP类库,而在SharpDevelop (#develop)中,“隐藏”了很多优秀的类库,其中ICSharpCode.TextEditor是表表者。

ICSharpCode.TextEditor源代码隐匿在\SharpDevelop\src\Libraries\ICSharpCode.TextEditor中,可以利用SharpDevelop (#develop)打开ICSharpCode.TextEditor.cmbx,也可以看看其例子(\SharpDevelop\samples\SharpPad中)SharpPad.cmbx。

先说说它的用法:

1:将ICSharpCode.TextEditor.dll添加到工具箱中,然后拖到界面上。

2:设置如下属性(例):

复制代码
复制代码
textEditorControl1.ShowEOLMarkers = false;
textEditorControl1.ShowHRuler = false;
textEditorControl1.ShowInvalidLines = false;
textEditorControl1.ShowMatchingBracket = true;
textEditorControl1.ShowSpaces = false;
textEditorControl1.ShowTabs = false;
textEditorControl1.ShowVRuler = false;
textEditorControl1.AllowCaretBeyondEOL = false;
textEditorControl1.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("HTML");
textEditorControl1.Encoding = Encoding.GetEncoding("GB2312");
复制代码
复制代码
3:指定内容文本
textEditorControl1.Text = "Hello World!"

 

再来说说他的扩展:

 官方原版的是不支持T-SQL语法的,我们让他支持T-SQL语法

下载http://files.cnblogs.com/wudingfeng/ICSharpCode.TextEditor_V3.0.rar

里面有一个TSQL-Mode.xshd文件,作为资源添加到项目中,然后修改SyntaxModes.xml文件,添加一行

 

<Mode file = "TSQL-Mode.xshd"
        name = "TSQL"
        extensions = ".sql"/>

然后再编译整个项目即可生成支持T-SQL的ICSharpCode.TextEditor.

 

下载最新SharpDevelop

 http://www.icsharpcode.com/OpenSource/SD/Download/

[此贴子已经被作者于2021/9/10 9:37:05编辑过]

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6230 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2021/9/10 15:13:00 [显示全部帖子]

加载到VS内了 无奈实在看不懂


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210910151424.png
图片点击可在新窗口打开查看

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textEditorControl1_Load(object sender, EventArgs e)
        {

        }
    }
}
[此贴子已经被作者于2021/9/10 15:14:53编辑过]

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6230 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2021/9/10 15:32:00 [显示全部帖子]

Public Class UserControl1
    Private Sub TextEditorControl1_Load(sender As Object, e As EventArgs) Handles TextEditorControl1.Load

    End Sub
End Class

能帮助指导一个类似功能的案例么  我捣鼓一下  谢谢!
[此贴子已经被作者于2021/9/10 15:32:42编辑过]

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6230 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2021/9/10 15:52:00 [显示全部帖子]

vs的教程大巴  关键搞到狐表内 这是主战场  
三方控件在狐表内使用要受到狐表的规则约束  狐表网上是独一份

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6230 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2021/9/10 19:13:00 [显示全部帖子]

如何可用在按钮内引用这个控件呢  其他都已经处理好了!




图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210910190937.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/9/12 9:23:44编辑过]

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6230 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2021/9/11 16:55:00 [显示全部帖子]

这个控件哪位大神实现了插入呢,没有SelectionStart 属性,这个是如何处理的呢

Dim t As winform.textbox = e.form.controls("textbox1")
Dim s As String = t.Text
Dim s1 As String = " " & e.Sender.text & " '% %' "
Dim i As Integer = t.SelectionStart + s1.length
s = s.Insert(t.SelectionStart,s1)
t.Text = s
t.SelectionStart = i


Dim ct As ICSharpCode.TextEditor.TextEditorControl = e.Form.Controls("Panel2").BaseControl.controls("TextEditor")
Dim cts As String =  ct.Text
Dim sct As String = " " & e.Sender.text & " '% %' "
Dim ict As Integer = ct.SelectionStart + sct.length
sct = sct.Insert(ct.SelectionStart,s1)
ct.Text = s
ct.SelectionStart = i

图片点击可在新窗口打开查看此主题相关图片如下:编辑器.png
图片点击可在新窗口打开查看


 回到顶部