2011-03-07 21 views
7

私はタブコントロールを持っており、選択したタブの周りに点在したフォーカス矩形を削除する必要があります。TabControl上のタブに点線の四角形を削除できますか?

TabControlのTabStopプロパティをfalseに設定しました。しかし、タブをクリックしてTabキーを押すと、タブネームの周囲に点線の四角形が表示されます。

私はTabControl自分自身を作成し​​ようと、この

class MyTabControl : TabControl 
{ 
     public MyTabControl() 
     { 
      TabStop = false; 
      DrawMode = TabDrawMode.OwnerDrawFixed; 
      DrawItem += new DrawItemEventHandler(DoMoreTabControl_DrawItem); 
      Invalidate(); 
     } 
} 

を試してみましたが、点線の長方形がまだ表示されます。

MyTabControl.OnPaint()メソッドのオーバーライドも試みましたが、それは役に立ちません。

これを達成する方法はありますか?

+0

なぜそれを隠したいですか?説得力のある理由はありますか? – Pradeep

答えて

1

はい、DrawItemイベントです。あなたはそれを投稿せず、何が間違っているのか推測することは不可能です。 e.DrawFocusRectangle()というMSDNのサンプルコードをコピーしたときに表示される可能性があります。ステートメントを単に削除するだけで十分です。フォーカスヒントが完全に失われないように、別の背景色またはテキストフォントスタイルを使用することを検討してください。代わりに、ヘッダのタブにフォーカス(このような)

private void tabControl1_Click(object sender, EventArgs e) 
{ 
    (sender as TabControl).SelectedTab.Focus(); 
} 

を設定

+2

これを行うアプリケーションの良い例:Visual StudioとMicrosoft SQL Server Management Studio。また、Webブラウザ。タブにはフォーカス矩形はありません。 Ctrl +タブが受け入れられた方法で表示され、キーボードからタブをナビゲートします。 –

0

あなたは、すぐに上記のイベントは、それが消えます実行されますよう、ミリ秒のために点線の長方形が表示されます。また

、負荷にデフォルト選択したタブのため

private void tabControl1_Enter(object sender, EventArgs e) 
{ 
    (sender as TabControl).SelectedTab.Focus(); 
} 

を点線の長方形を削除するには、両方のこの変更は、私のために働きました! 誰かに役立つことを願っています。