winform中让显示的图片覆盖到父窗体保持父窗体的不可选中的状态,且任务栏中不会显示子窗体的任务选项

Posted yujunxiaobai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform中让显示的图片覆盖到父窗体保持父窗体的不可选中的状态,且任务栏中不会显示子窗体的任务选项相关的知识,希望对你有一定的参考价值。

要求:为父窗体添加一个类似于加载等待的功能,当窗体点击备份时弹出且覆盖掉窗体

问题一产生:当为弹窗添加控件时,form.show();导致窗体卡死,控件变得透明化;

问题一分析:当窗体show();之后socket方式的传输方式,使线程卡死了,导致弹窗窗体为加载完全就卡死了;

问题一解决:将备份的代码重新开启一个线程进行操作,使主窗体的代码不会卡死

注意:可能会产生跨线程访问问题,注意善用this.invoke(new Action());来解决问题;

 

问题二:弹窗窗体会被覆盖导致主窗体可能被操作;

问题二分析:由于弹窗窗体和子窗体无层级关系,属于平级,导致窗体没有明显的分层界限

问题二解决:为弹窗窗体的.show(this);属性添加参数,该参数为主窗体的this来代表主窗体本身,或者设置弹窗窗体的.owner属性等于this,

注意:搜索发现,网上有一个使用topmost=ture;的方法,该方法的使用是使该窗体显示到所有的窗体之上,类似于wx的显示方式

 

问题三:让弹出窗体不会显示到windows的任务图标中

问题三分析:窗体有一个叫showInTaskbar要对他进行设置

问题三解决:showInTaskbar设置为false;

以上是关于winform中让显示的图片覆盖到父窗体保持父窗体的不可选中的状态,且任务栏中不会显示子窗体的任务选项的主要内容,如果未能解决你的问题,请参考以下文章

mfc中让编辑框透明为啥总显示黑色背景的编辑框啊?

c#中怎么才能父窗体中保持子窗体大小不变

C# winform中父窗体显示问题

C# winform改变窗体大小时背景图片出现重叠怎么解决

MFC中怎么让子窗体大小随着父窗口的大小变化而改变?

关于winform子窗体刷新父窗体