2011-08-04 7 views
0

私のアプリケーションでMSChartControlを使用しています。チャートコントロールでは、チャートコントロールの選択メカニズムを使用して、ChartAreaのCursorXを使用してイメージの範囲を選択するイメージを表示します。MSChartControl選択時の奇妙な動作

SelectionRangeChangedイベントでは、ユーザーによって選択が完了したときに通知を受け取り、選択されていない領域を色付けして元の選択を非表示にしたいとします。

ないClearSelectionは(少なくとも私はこのような方法を見つけていない)がないので、私は何も選択が行われなかったときに、カーソルが最初にあった値を選択設定:塗料中

private void chartTopoAP_SelectionRangeChanged(object sender, CursorEventArgs e) 
{ 
    int Start = (int)e.NewSelectionStart; 
    int End = (int)e.NewSelectionEnd; 

    MathUtil.SwapIf(Start > End, ref Start, ref End); 

    mySelectedRange = new Tuple<int, int>(Start, End); 

    chartTopoAP.ChartAreas[0].CursorX.SetSelectionPosition(double.NaN, double.NaN); 
    chartTopoAP.Invalidate(); 
    chartTopoAP.Update(); 
} 

を方法私は自分の絵を描きます。

これは、ウィンドウとchartcontrolのサイズを変更しない限り動作するようです。

1)私は、私は別の選択

行う) 3(より大きい/小さい問題ではありません)chartcontrolのサイズを変更)ウィンドウを起動し、何か 2を選択 - >結果はその明らかであり、コントロールは内部的にいくつかのグラフィックスをバッファリングし、コントロールのサイズを変更する前のサイズのグラフを表示します。

私はラインに

chartTopoAP.ChartAreas[0].CursorX.SetSelectionPosition(double.NaN, double.NaN); 

をコメントアウトした場合、それは動作します。しかし、私はどのようにして選択をクリアしますか?

おかげ マーティン

答えて

1

ズーム設定をscaleviewに関係しているように見えます。追加すると、選択肢をリセットした後に

chartTopoAP.ChartAreas[0].AxisX.ScaleView.ZoomReset(); 

が表示され、症状が消えます。

+0

完全に作業しました。どうもありがとう。 – msedi

関連する問題