作成日: 2017/12/21 最終更新日: 2017/12/21
文書種別
使用方法
詳細
C1SuperTooltipを用いると、マウスポインタの位置に応じたゲージの値をツールチップに表示することができます。
以下に、製品収録のGaugesDemoサンプル内の「インタラクティブ」デモにツールチップを表示するコードを紹介します。
ここではまず、C1RadialGaugeのItemMouseMoveイベント内でC1GaugeBaseのGetValueAtメソッドを使用して、マウスポインタが指し示す場所のゲージの値を取得します。次いで、C1SuperTooltipのSetToolTipメソッドを使用して、この値を持つツールチップをゲージコントロールに表示します。
※GaugesDemoサンプルのPageInteractive.csに以下のコードを追加して、動作をご確認ください。
◎サンプルコード(VB)
◎サンプルコード(C#)
以下に、製品収録のGaugesDemoサンプル内の「インタラクティブ」デモにツールチップを表示するコードを紹介します。
ここではまず、C1RadialGaugeのItemMouseMoveイベント内でC1GaugeBaseのGetValueAtメソッドを使用して、マウスポインタが指し示す場所のゲージの値を取得します。次いで、C1SuperTooltipのSetToolTipメソッドを使用して、この値を持つツールチップをゲージコントロールに表示します。
※GaugesDemoサンプルのPageInteractive.csに以下のコードを追加して、動作をご確認ください。
◎サンプルコード(VB)
Private Sub c1RadialGauge1_ItemMouseMove(ByVal sender As System.Object, ByVal e As ItemMouseEventArgs) Handles C1RadialGauge1.ItemMouseMove, C1RadialGauge1.ItemMouseDown
' **** コード追加(1) *****
C1SuperTooltip1.SetToolTip(Me.C1Gauge1, "") 'ツールチップをクリアします
' ***************************
If TypeOf e.Item Is C1GaugeEllipse AndAlso (e.Button And MouseButtons.Left) = MouseButtons.Left Then
Dim el As C1GaugeEllipse = CType(e.Item, C1GaugeEllipse)
If el.Name = "back" Then
Dim p As C1GaugePointer = e.Gauge.Pointer
p.UpdateValue(p.GetValueAt(e.X, e.Y), 2.5)
End If
' **** コード追加(2) *****
Else ' ツールチップを更新します
Dim el As C1GaugeEllipse = CType(e.Item, C1GaugeEllipse)
Dim location As Point = e.Location
Dim centerX As Double = (C1Gauge1.Bounds.Width / 2)
Dim centerY As Double = (C1Gauge1.Bounds.Height / 2)
' マウスポイントが中央部分にない場合
If ((Not (el) Is Nothing) _
AndAlso ((el.Name = "back") _
AndAlso ((Math.Abs((location.X - centerX)) > 20) _
AndAlso (Math.Abs((location.Y - centerY)) > 20)))) Then
Dim value As Double = e.Gauge.GetValueAt(e.Location.X, e.Location.Y)
If Not Double.IsNaN(value) Then
' ゲージコントロールにツールチップを設定し、マウスが他のコントロール上に移動したら自動的に非表示にします
C1SuperTooltip1.SetToolTip(Me.C1Gauge1, CType(value, Integer).ToString)
End If
End If
End If
' ***************************
End Sub
' **** コード追加(1) *****
C1SuperTooltip1.SetToolTip(Me.C1Gauge1, "") 'ツールチップをクリアします
' ***************************
If TypeOf e.Item Is C1GaugeEllipse AndAlso (e.Button And MouseButtons.Left) = MouseButtons.Left Then
Dim el As C1GaugeEllipse = CType(e.Item, C1GaugeEllipse)
If el.Name = "back" Then
Dim p As C1GaugePointer = e.Gauge.Pointer
p.UpdateValue(p.GetValueAt(e.X, e.Y), 2.5)
End If
' **** コード追加(2) *****
Else ' ツールチップを更新します
Dim el As C1GaugeEllipse = CType(e.Item, C1GaugeEllipse)
Dim location As Point = e.Location
Dim centerX As Double = (C1Gauge1.Bounds.Width / 2)
Dim centerY As Double = (C1Gauge1.Bounds.Height / 2)
' マウスポイントが中央部分にない場合
If ((Not (el) Is Nothing) _
AndAlso ((el.Name = "back") _
AndAlso ((Math.Abs((location.X - centerX)) > 20) _
AndAlso (Math.Abs((location.Y - centerY)) > 20)))) Then
Dim value As Double = e.Gauge.GetValueAt(e.Location.X, e.Location.Y)
If Not Double.IsNaN(value) Then
' ゲージコントロールにツールチップを設定し、マウスが他のコントロール上に移動したら自動的に非表示にします
C1SuperTooltip1.SetToolTip(Me.C1Gauge1, CType(value, Integer).ToString)
End If
End If
End If
' ***************************
End Sub
◎サンプルコード(C#)
C1Gauge1, ""); // ツールチップをクリアします
// ***************************
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
C1GaugeEllipse el = e.Item as C1GaugeEllipse;
if (el != null && el.Name == "back")
{
C1GaugePointer p = e.Gauge.Pointer;
p.UpdateValue(p.GetValueAt(e.X, e.Y), 2.5);
}
}
// **** コード追加(2) *****
else // ツールチップを更新します
{
C1GaugeEllipse el = e.Item as C1GaugeEllipse;
Point location = e.Location;
double centerX = C1Gauge1.Bounds.Width / 2;
double centerY = C1Gauge1.Bounds.Height / 2;
// マウスポイントが中央部分にない場合
if (el != null && el.Name == "back" && Math.Abs(location.X - centerX) > 20 && Math.Abs(location.Y - centerY) > 20)
{
double value = e.Gauge.GetValueAt(e.Location.X, e.Location.Y);
if (!double.IsNaN(value)) // そのポイントの値を取得できたら、それに応じてツールチップを更新します
{
// ゲージコントロールにツールチップを設定し、マウスが他のコントロール上に移動したら自動的に非表示にします
c1SuperTooltip1.SetToolTip(this.C1Gauge1, ((int)value).ToString());
}
}
}
// ***************************
}
// ***************************
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
C1GaugeEllipse el = e.Item as C1GaugeEllipse;
if (el != null && el.Name == "back")
{
C1GaugePointer p = e.Gauge.Pointer;
p.UpdateValue(p.GetValueAt(e.X, e.Y), 2.5);
}
}
// **** コード追加(2) *****
else // ツールチップを更新します
{
C1GaugeEllipse el = e.Item as C1GaugeEllipse;
Point location = e.Location;
double centerX = C1Gauge1.Bounds.Width / 2;
double centerY = C1Gauge1.Bounds.Height / 2;
// マウスポイントが中央部分にない場合
if (el != null && el.Name == "back" && Math.Abs(location.X - centerX) > 20 && Math.Abs(location.Y - centerY) > 20)
{
double value = e.Gauge.GetValueAt(e.Location.X, e.Location.Y);
if (!double.IsNaN(value)) // そのポイントの値を取得できたら、それに応じてツールチップを更新します
{
// ゲージコントロールにツールチップを設定し、マウスが他のコントロール上に移動したら自動的に非表示にします
c1SuperTooltip1.SetToolTip(this.C1Gauge1, ((int)value).ToString());
}
}
}
// ***************************
}
旧文書番号
82482