找回密码
 立即注册

QQ登录

只需一步,快速开始

gzaod

注册会员

12

主题

28

帖子

134

积分

注册会员

积分
134

活字格认证微信认证勋章元老葡萄

gzaod
注册会员   /  发表于:2018-4-13 13:07  /   查看:3099  /  回复:3
由于需要用代码控制选择区域,界面上回一闪而过,有没有什么参数,可以控制控件的重绘?
            int s = textControl1.Selection.Start; int sl = textControl1.Selection.Length;
            foreach (ApplicationField appField in textControl1.ApplicationFields)
            {
                textControl1.Select(appField.Start - 1, appField.Length);
                string rtf = string.Empty;
                textControl1.Selection.Save(out rtf, StringStreamType.RichTextFormat);
                Console.WriteLine(rtf);
            }
            textControl1.Select(s, sl);


3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-13 18:21:50
沙发
您好,目前没有办法控制重绘
回复 使用道具 举报
gzaod
注册会员   /  发表于:2018-4-16 10:59:16
板凳
本帖最后由 gzaod 于 2018-4-16 11:00 编辑
Richard.Ma 发表于 2018-4-13 18:21
您好,目前没有办法控制重绘

已解决。
参考 :https://stackoverflow.com/questi ... ol-and-its-children

class DrawingControl{    [DllImport("user32.dll"    public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);    private const int WM_SETREDRAW = 11;     public static void SuspendDrawing( Control parent )    {        SendMessage(parent.Handle, WM_SETREDRAW, false, 0);    }    public static void ResumeDrawing( Control parent )    {        SendMessage(parent.Handle, WM_SETREDRAW, true, 0);        parent.Refresh();    }}

评分

参与人数 1金币 +500 收起 理由
Richard.Ma + 500 很给力!

查看全部评分

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-17 10:43:47
地板
厉害

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部