c# - 当 ShowInTaskBar 属性为 false 时,LoginForm 会自动隐藏或关闭
问题描述
我正在使用系统登录在 C# Winforms 中开发一个应用程序,其中我有两种形式,一种是主要MainForm
的,另一种是用于登录的LoginForm
。
此应用程序有一个Modern Flat UI Design
界面,因此它希望LoginForm form
显示在MainForm
表单前面,而不是在任务栏中显示其图标,并且不允许用户与之交互MainForm
以显示它已使用的方法ShowDialog();
。
LoginForm
压缩代码:
public partial class LoginForm : Form
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.ShowInTaskbar = this.ShowIcon = false;
}
}
MainForm
压缩代码:
public partial class MainForm : Form
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
new LoginForm().ShowDialog();
//new LoginForm().ShowDialog(this);
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
//new LoginForm().ShowDialog();
//new LoginForm().ShowDialog(this);
}
}
我的问题是没有别的开始MainForm
,显示LoginForm
大约 2 秒钟然后隐藏它,然后,我最小化MainForm
以验证LoginForm
没有移动到后面MainForm
,但事实证明它LoginForm
不存在。
如果我删除该属性ShowInTaskbar = false;
,那么一切正常,但LoginForm
它显示在任务栏中,这正是我不想要的。
那么,我怎样才能在不出现在任务栏中的情况下将我的显示LoginForm
在前面呢?MainForm
LoginForm
注意:是的,虽然LoginForm
没有关闭,但用户不能与之交互,MainForm
关闭的唯一方法LoginForm
是正确记录或单击按钮关闭LoginForm
呼叫Application.Exit();
。
此外,我试图隐藏MainForm
开始this.Hide();
但同样LoginForm
消失。
解决方案
设置ShowInTaskBar
并ShowIcon
在对话框的构造函数中:
public partial class LoginForm : Form
{
public LoginForm()
{
InitializeComponent();
this.ShowInTaskbar = false;
this.ShowIcon = false;
}
}
然后Shown
在主窗体的方法中显示它:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
new LoginForm().ShowDialog();
}
}
推荐阅读
- c# - 在动作中的 MVC Controller 中将 bool 状态更改并保存为 true
- c# - 在运行时更改 asp.net 核心模型属性名称
- javascript - 如何在div中绘制形状
- angular - 在服务中使用地图运算符并在组件中订阅时的 RxJS BehaviouSubject
- jquery - jQuery 错误:$(...).modal 不是函数
- laravel - 数据库 laravel 发生变化时刷新视图内容
- elasticsearch - 嵌套字段上的聚合,嵌套字段属性上的 fielddata=true
- kong - Kong GCP setup initiating weekly migrations which is breaking the datastore and admin access
- angular - 使用 http.get 时如何获取非 http 状态码?
- group-by - DAX:先区分然后聚合两次