2011-07-01 15 views
2

アプリケーションにファイルが読み込まれたときにタブの表示を設定する際に問題があります。 ユーザーがアプリケーションを起動すると、ウェルカムタブが表示されます。ユーザーがファイルを選択して開くと、新しいエディタフォームでファイルがロードされますが、どのようにするかわかりませんフォームをロードし、エディタタブの可視性も設定します。C#WinForms:新しいフォーム読み込み時にタブの表示を選択

  if (this.openEditorDialog.ShowDialog(this) == DialogResult.OK && editForm != null) 
     { 
      editForm.Close(); 
      editForm = new EditorForm(this); 
      editForm.OpenFile(this.openEditorDialog.FileName); 
      editForm.Closing += new CancelEventHandler(EditorForm_Closing); 
      editForm.Show(); 
     } 

私はeditForm.EditorTab.Show()を実行しようとしました。また、Activecontrol = editForm.EditorTabは利用できません。事前に多くの感謝。

  Application.DoEvents(); 
     EditorTab.Focus(); 
+0

そのタブが何をしているかを推測するのは難しいです。もちろん、OpenFile()メソッドでEditorForm自体で制御する必要がありますか? –

答えて

1

TabControlのはSelectedTab性質を持っています:check MSDNそのため、あなたのform.showコマンドの後

+0

ああ、はい、これは本当にありがとうございます! – jonalodev

-1

は、次の操作を行います。私はサンプルがあり、それを見つける必要があることを知っています。

...おっと、それはSelectTabです:here on MSDN

void SetVisibleTab(TabPage tabPage) { 
    myTabControl.SelectTab(tabPage); 
} 
+0

DoEvents? ...本当に?どうして? – IAbstract

+0

フォーカスを開始する前に.Showメソッドを完了できるようにするためです。 .showを完了させる何かをしないと、.focusは確実に動作しません。これは、DoEventsが適している非常に少数のインスタンスの1つです。続行する前に、未処理のメッセージを処理するために、ウィンドウ上のメッセージポンプに処理させます。 –

+0

'.Focus()'を使う必要はありません。 '.DoEvents()'は不要です。 – IAbstract

関連する問題