2012-02-14 7 views
0

WinFormにはTableLayoutPanelがあります。 TableLayoutPanelのセルには、カスタムUserControlsが動的に取り込まれます。このUserControlsのそれぞれは、Chart(DevExpressチャートツールを使用)を表示するために使用されます。この背後にある理由は、チャートを複数の行に配置し、各行に3つの列が含まれるようにするためです。TableLayoutPanelのセルでMouseDoubleClickを処理する方法は?

グラフがかなり小さいので、グラフをダブルクリックして各グラフを最大化する機会をユーザに与えたいと考えています。したがって、MouseDoubleClick-Eventを使用しようとしました。

最初にDesignerを使用してMouseDoubleClick-EventTableLayoutPanelに割り当てました。テーブルのセルが空である限り、これは正常に動作します。 UserControlがあるとすぐに、イベントはもう発射されない(?)。

イベント全体をUserControl(そのDesigner-ViewにはMouseDouybleClick-Eventと定義しています)に設定しようとしました。しかし、それは再び捕獲されていない:(

私が間違って何をしているのですか?

答えて

0

MouseDoubleClickイベントが実際にダブルクリックである制御用を解雇された。

あなたはダブルクリックしようとした場合あなたのUserControlの一つに、それはイベントが発生しますUserControlの

EDIT:あなたのユーザーコントロール上のごChartコントロールとして

のプロパティがFillの場合、実際にはChartのコントロールがダブルクリックされます(UserControlが表示されないため)。あなたは何ができるか

が親コントロールにイベントを転送することです(ユーザーコントロール):

YouUserControl.cs:

private void chartControl_DoubleClick(object sender, EventArgs e) 
    { 
     this.OnDoubleClick(EventArgs.Empty); 
    } 

注: 実際には、ユーザーコントロールを作成するには少し奇妙です1つのコントロールにはDockStyle.Fillが含まれています。 TableLayoutPanelでChartコントロールを直接使用しなかったのはなぜですか?あなたのUserContorlに追加のメソッド/プロパティがあるので、ChartコントロールからUserControlを継承したい場合があります(sealedでない場合)。

+0

しかし、UserControlのイベントは発生しません....私はチェックするためにブレークポイントを設定しました... –

+0

@AlexanderAdrowitzer 'UserControl'をクリックしましたか?' Chart'コントロールを 'UserControl '? – ken2k

+0

私はForm1とUserControlという2つのクラスを持っています。私は自分のTableLayoutパネルを持って、次のようにUserControlを追加します:for(int i = 0; i <4:i ++){UserControl ctrl = new UserControl(); ctrl.Dock = DockStyle.Fill;あなたが何を意味するのか理解しています。 –

関連する問題