C# 如何设置所有时间的活动窗体?
有没有办法将表单设置为始终处于活动状态?无论我是否打开另一个窗体,我打开的窗体都将设置为非活动,而其他窗体将设置为活动。C# 如何设置所有时间的活动窗体?,c#,winforms,C#,Winforms,有没有办法将表单设置为始终处于活动状态?无论我是否打开另一个窗体,我打开的窗体都将设置为非活动,而其他窗体将设置为活动。 例如: 我有两种形式:“主要形式”和“提醒形式”。当我启动应用程序时,它会加载“提醒表单”,然后加载“主表单”,之后“主表单”处于活动状态,但我希望“提醒表单”处于活动状态,但表单加载的顺序需要相同。如果说“活动”是指始终有焦点,那么内置方式是不可能的,应该由您来处理。如果您希望它始终可见(位于其他表单的顶部),可以使用TopMost=true属性,因此它将始终位于所有非最顶
例如:
我有两种形式:“主要形式”和“提醒形式”。当我启动应用程序时,它会加载“提醒表单”,然后加载“主表单”,之后“主表单”处于活动状态,但我希望“提醒表单”处于活动状态,但表单加载的顺序需要相同。如果说“活动”是指始终有焦点,那么内置方式是不可能的,应该由您来处理。如果您希望它始终可见(位于其他表单的顶部),可以使用
TopMost=true
属性,因此它将始终位于所有非最顶部表单上,顺便说一句,如果出现另一个最顶部表单,则不会保证这一点
希望这能有所帮助。您可以注册到活动中,然后打电话再次激活表单:
public ReminderForm()
{
//other stuff
Deactivate += (s, e) => { if (/* check if really do it */) Activate(); };
}
如果您只想让“提醒表单”可见,那么将其设置为true是一种更简单的方法。将表单的
最顶端的属性设置为true
您可以使用
public ReminderForm()
{
InitializeComponent();
MainForm frm2 = new MainForm();
MainForm.Show();
Activate();
}
如果希望表单始终位于其他表单的顶部,请将TopMost=true
将最顶层的属性设置为True
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
this.Focus();
}