2012-04-12 6 views
1

常にアクティブになるようにフォームを設定する方法はありますか?私が別のフォームを開いても開いたフォームは非アクティブになり、他のフォームはアクティブになります。
例:
「メインフォーム」と「リマインダーフォーム」の2つのフォームがあります。アプリケーションを起動すると、「リマインダーフォーム」がロードされ、「メインフォーム」がロードされ、「メインフォーム」はアクティブですが、「リマインダーフォーム」はアクティブですが、フォームのロード方法のシーケンス同じであること。いつもアクティブなフォームを設定するには?

答えて

1

「アクティブ」とは、常にフォーカスがあることを意味し、組み込みの方法では不可能である場合は、それを処理する必要があります。常に表示されるようにしたい場合は、TopMost=true属性を使用することができます。したがって、常にの非TopMostフォーム(これは、別のフォームが表示された場合には保証されません)になります。 TopMostフォーム。

これが役に立ちます。

0

あなたはDeactivateイベントに登録して、再度フォームがアクティブにActivateを呼び出すことができます。

public ReminderForm() 
{ 
    //other stuff 
    Deactivate += (s, e) => { if (/* check if really do it */) Activate(); }; 
} 

あなたがちょうど見えるようにする「リマインダーフォーム」をしたい場合は、trueにTopMostを設定する簡単な方法です。

0

フォームのTopMostプロパティをtrueに設定します。

0

あなたは、あなたのフォームが他のフォームの上に常に滞在したい場合は、TopMost = true;

0
private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 f2 = new Form2(); 
     f2.Show(); 
     this.Focus(); 
    } 
0

True

TopMostプロパティを設定する設定

public ReminderForm() 
{ 
    InitializeComponent(); 
    MainForm frm2 = new MainForm(); 
    MainForm.Show(); 
    Activate(); 
} 

を使用することができます

関連する問題