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

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

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

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

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

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

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

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

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

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/yujunxiaobai/p/10675999.html