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();
    }