2012-03-13 43 views
1

私のアプリに.net 4.0ポイントチャートがあります。私はデータマーカ上でマウスをクリックしてキャプチャしたいと思います。ユーザーが特定のポイントをクリックすると、データがどこから来たかのバインドされたテーブルの行に移動したいと思います。Microsoft Chart Controlのマウスクリックイベントを取得するデータマーカーをクリック

この機能は.netチャートコントロールに組み込まれていますか?

EDIT:実際には、ユーザーが特定のデータポイントをクリックする必要がなく、カーソル位置の値が必要な場合があります。カーソル位置を取得すると、その値を使用してマウスクリックに最も近い行をデータセット内で見つけることができます。私が最初に要求したことに対する正解であったので、私は元の質問に対する答えを受け入れました。

私の「実際の」問題を解決するには、ポスト内のユーザークインによってポストで発見された Showing Mouse Axis Coordinates on Chart Control

{ 
    var chartArea = _chart.ChartAreas[0]; 
    var xValue = chartArea.AxisX.PixelPositionToValue(x); 
    var yValue = chartArea.AxisY.PixelPositionToValue(y); 
    return new Tuple<double, double>(xValue, yValue); 
} 

答えて

1

あなたはこれを試すことができます。

protected void Page_Load(object sender, EventArgs e) 
{ 
    foreach (DataPoint dp in this.Chart1.Series["YourSeriesName"].Points) 
    { 
     dp.PostBackValue = "#VALX,#VALY"; 
    } 
} 
protected void Chart1_Click(object sender, ImageMapEventArgs e) 
{ 
    string[] pointData = e.PostBackValue.Split(','); 
    // Add click event code here 
} 

はあなたがOnClick="Chart1_Click"を設定する必要がありますasp:Chart。 また、チャートに複数のシリーズがある場合は、シリーズでPostBackを直接設定し、シリーズに関する情報を渡すことができます。

+0

私はe.PostBackValue.Splitがセミコロンではなく "、"区切り記号を使って分割されるべきだと考えています; ";デリミタ。おそらく単にタイプミスですが、この質問に遭遇した人にはそれを指摘します。 – CodeFu65816

関連する問題