2012-03-09 16 views
0

私はWinformsアプリケーションでInfragistics NetAdvantage 2010を使用しています。これは、ボタンのマウスオーバーにカスタムツールチップをロードするためのコードです。UltraTooltipが最初にMouseHoverに読み込まれない

private void button1_MouseHover(object sender, EventArgs e) 
{ 
    UltraToolTipInfo toolTipInfo = ultraToolTipManager1.GetUltraToolTip(button1); 
    toolTipInfo.ToolTipTextStyle = ToolTipTextStyle.Formatted; 
    ultraToolTipManager1.DisplayStyle = ToolTipDisplayStyle.Office2007; 

    toolTipInfo.ToolTipTextFormatted = "" + 
     "<p style='color:Black; font-family:tahoma;'>Details:</p>" + 
     "<p style='color:Black; font-family:tahoma;'>Name: <t style='color:Black; font-family:tahoma; font-weight:bold;'>Sandeep</t></p>" + 
     "<t style='color:Black; font-family:tahoma;'>Profile: <t style='color:Black; font-family:tahoma; font-weight:bold;'>Developer</t></t> "; 
} 

これを実行すると、マウスを動かすとツールチップが初めて表示されます。それは2回目以降に始まります。何が問題なの?

+1

MouseHoverイベントではなくMouseEnterイベントにコードを入れ、それが機能するかどうかを確認することができます。 (ボタン上でMouseLeaveイベントのツールヒントを閉じる必要があるかもしれません) –

+0

あなたはツールヒントに何らかの種類の動的情報が必要なので、MouseHoverですべてのことをすると思います。しかし、私はあなたの文字列に何も「ダイナミック」は見ません。 – Steve

+0

@Steve:それは私が投稿したばかりのサンプル文字列なので、動的ではありません! – Sandeep

答えて

1

私のコメントがうまくいっているように答えとしてそれが含まれます。

ツールヒントがMouseHoverイベントではなくMouseEnterイベントに読み込まれるようにコードを変更します。

0

UltraTooltipManagerは、コントロールのMouseMoveイベントを使用して、ツールヒントを表示するタイミングを決定します。マウスの移動はMouseMoveの後に発生するため、表示されません最初のマウスのホバー上のツールチップのMouseMoveは、すでに起こっているようにあなたは、MSDN上のマウスイベントの順序の詳細を見ることができます:。 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousemove.aspx

これを修正するには、2つのソリューションがあります。 1.にあなたのロジックを移動します2.ツールチップに表示される内容が変更されたときにツールチップを設定します。

これは、ユーザーがコントロールにマウスを置く頻度と動的ツールチップ内の情報がどのくらいの頻度で変更されるかによって異なります。

関連する問題