gzaod 发表于 2018-4-13 13:07:31

Tx 修改选择区域时,能否不刷新?

由于需要用代码控制选择区域,界面上回一闪而过,有没有什么参数,可以控制控件的重绘?
            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);


Richard.Ma 发表于 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();    }}

Richard.Ma 发表于 2018-4-17 10:43:47

:hjyzw: 厉害

页: [1]
查看完整版本: Tx 修改选择区域时,能否不刷新?