解决界面初始化显示时,按钮等背景图片显示不完整问题:
界面绑定事件: this.Shown += new Syste
//显示委托 private delegate void showDelegate(); /// <summary> /// 窗体所有控件加载完成后执行耗时操作,只会触发一次 /// </summary> private void FrmDraw_Shown(object sender, EventArgs e) { Application.DoEvents(); Thread thread = new Thread(new ThreadStart(CrossThreadFlush)); thread.IsBackground = true; thread.Priority = ThreadPriority.Lowest; thread.Start(); } private void CrossThreadFlush() { //异步调用 if (viewControl.InvokeRequired)//等待异步 { showDelegate fc = new showDelegate(OpenShowDxfFile); this.BeginInvoke(fc); //通过代理调用刷新方法 } else { OpenShowDxfFile(); } } [DllImport("user32.dll")] //锁定键盘及鼠标 static extern void BlockInput(bool Block); //绘制打开的文件 private void OpenShowDxfFile() { try { if (fileInfoOpen.FileName != null) { //耗时操作。。。 // Task.Run(() => //较慢 Thread thread = new Thread( ()=> { BlockInput(true);//锁定鼠标及键盘 //耗时操作。。。。 BlockInput(false); //解除锁定 }); thread.IsBackground = true; thread.Start(); } } catch (Exception ex) { string msg = ex.Message; } }m.EventHandler(this.FrmDraw_Shown);