2016-09-04 18 views
1

私はC#ののWinFormアプリケーションを書いています。私はタブコントロールを持っており、メニューで新しいタブを追加したり、タブをダブルクリックして削除するなど、すべての機能をプリセットしています。今私の問題は、タブコントロールの空白の灰色のスペースをダブルクリックするたびにタブを作成することです。C#タブコントロールの空きスペースをダブルクリックして

私は今時間ほど検索してきたと私は何を見つけるの多くは、WPFを扱っていると私はむしろ、すぐにそれらいつでも掘り下げないと思います。だから私はダブルクリックを検出する私の手段に合うように問題を探しています。私はdouble clickmouse double clickダブルクリックがタブ上で動作するように試みました。マウスのダブルクリックは、マウスイベントの引数をキャプチャする点を除き同じです。それでは私はそれがタブだけ自分自身にその情報を提供してい除き

e.Location

を使用することができますよ。誰もがタブ自体の外にダブルクリックをキャプチャするための提案がありますか?私は、ウィンドウ自体をマウスでダブルクリックするなど、両親に行ってみようとしましたが、代わりにクリックを処理する完全に不透明な要素を作成しようとしましたが、毎回レンガの壁に当たっています。

private void Tabs_MouseDoubleClick(object sender, MouseEventArgs e) 
{ 
     //only works when double clicking tabs 
     MessageBox.Show(e.Location.ToString()); 
} 
+0

私はそれを行う方法を知らないが、私は両方のダブルクリックアクションが私にはむしろ非直観的に見えることを知っています。タブにXを追加し、タブコントロールに+ページを追加することは、ユーザーが期待する標準です。 - 笑:ちょうど述べたものとまったく同じ反応[ここ](http://stackoverflow.com/questions/4983389/how-to-handle-a-double-click-on-a-tabcontrols-tabs-panels-empty-スペース?RQ = 1) – TaW

+1

を見てください[ '閉じるとTabControlのを、ボタンを追加'](http://stackoverflow.com/questions/36895089/tabcontrol-with-close-and-add-button)または[ 'リサイズTabControlの - 一部のマウスに透明であり、すべてのマウスイベントが通過しているようです(http://stackoverflow.com/questions/6738126/winforms-tabcontrol-add-new-tab-button) –

+2

]新規タブボタン(+) 'を追加します。その部分の後ろにあるコントロールによって受け取られます。回避策として 'TabControl'を' Panel'に入れ、 'TabControl'の' Dock'プロパティをtrueに設定し、 'Panel'のハンドル' DoubleClick'イベントを設定することができます。 –

答えて

2

TabControlの一部をマウスに透明であり、すべてのマウスイベントは、一部を通過し、一部の背後にあるコントロールによって受信されると思われます。

だから、回避策として、あなたはPanelTabControlを置くことができますし、FillTabControlDockプロパティを設定し、PanelのハンドルDoubleClickイベント。マウスフックのオプションもありますが、パネルオプションはもっとシンプルです。コントロールの

マウス-trasparent部分は、以下の画像に赤色で示されています。また、コントロールの境界線もその領域の一部です。

enter image description here

関連する問題