2011-08-04 52 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)我啓動窗口,並選擇一些 2)我調整chartcontrol(大/小沒關係) 3)我做的另一個選擇

- >結果是,這顯然是控件在內部緩衝了一些圖形,並向我顯示了調整控件大小之前的大小。

如果我註釋掉線

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

它的工作原理。但是,我將如何清除選擇呢?

感謝 馬丁

回答

1

這似乎scaleview變焦設置有關。如果添加

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

重置選擇後,症狀消失。

+0

完美工作。非常感謝。 – msedi