2011-08-04 2 views
0

J'utilise le MSChartControl dans mon application. Dans le contrôle graphique, j'affiche une image dans laquelle je veux utiliser le mécanisme de sélection du contrôle graphique pour sélectionner une plage de l'image en utilisant le CursorX de la ChartArea.MSChartControl comportement étrange sur la sélection

Dans l'événement SelectionRangeChanged, je souhaite être informé lorsqu'une sélection a été effectuée par l'utilisateur, puis je souhaite coloriser les zones qui n'ont pas été sélectionnées et masquer la sélection d'origine.

Comme il n'y a pas ClearSelection (au moins je ne l'ai pas trouvé une telle méthode), je mis la sélection à une valeur que le curseur avait d'abord quand aucune sélection a été effectuée:

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(); 
} 

Dans la peinture méthode Je fais ma propre peinture.

Cela semble fonctionner à moins que je redimensionne la fenêtre et le contrôle de la carte.

1) Je commence la fenêtre, et sélectionnez quelque chose 2) Je redimensionnez la chartcontrol (plus/petit n'a pas d'importance) 3) Je fais une autre sélection

-> Le résultat est que de toute évidence la Le contrôle a tamponné certains graphiques en interne et me montre le graphique avec une taille que j'avais avant de redimensionner le contrôle.

Si je commente la ligne

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

cela fonctionne. Mais comment puis-je effacer une sélection alors?

Merci Martin

Répondre

1

Il semble être lié à scaleview paramètres de zoom. si vous ajoutez

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

après la réinitialisation de la sélection, le symptôme disparaît.

+0

A travaillé parfaitement. Merci beaucoup. – msedi

Questions connexes