Activation de la molette de la souris zoom dans un Contrôle de Graphique de Microsoft
comment faire pour activer le zoom dans le contrôle de graphique de Microsoft en utilisant la molette de la Souris
J'ai le code ci-dessous, j'ai besoin de savoir comment faire de cet événement? dans la classe qu'il est..
private void chData_MouseWheel(object sender, MouseEventArgs e)
{
try
{
if (e.Delta < 0)
{
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset();
chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset();
}
if (e.Delta > 0)
{
double xMin = chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum;
double xMax = chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum;
double yMin = chart1.ChartAreas[0].AxisY.ScaleView.ViewMinimum;
double yMax = chart1.ChartAreas[0].AxisY.ScaleView.ViewMaximum;
double posXStart = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X) - (xMax - xMin) / 4;
double posXFinish = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X) + (xMax - xMin) / 4;
double posYStart = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Location.Y) - (yMax - yMin) / 4;
double posYFinish = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Location.Y) + (yMax - yMin) / 4;
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(posXStart, posXFinish);
chart1.ChartAreas[0].AxisY.ScaleView.Zoom(posYStart, posYFinish);
}
}
catch { }
}
OriginalL'auteur user2427616 | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
Je pense que la réponse ci-dessus devrait être,
chData.La roulette de la souris += new MouseEventHandler(chData_MouseWheel);
Mais d'après ce que j'ai trouvé, le graphique de la molette de la souris ne fonctionne pas tant que vous n'avez pas mis l'accent sur le contrôle de graphique dans votre code. J'ai donc utilisé de la souris de l'entrée de la carte de contrôle de placer le focus sur le graphique et de la souris événement laisser de la carte de contrôle pour définir le contrôle de retour à son parent.
Si vous avez besoin d'ajouter ci-dessous les lignes de code, lier la souris congé et de la souris à l'entrée des événements de la carte de contrôle en conséquence, et ajouter la ligne ci-dessus.
OriginalL'auteur user3806381
Ce que vous avez est une méthode de gestionnaire pour le
MouseWheel
événement. Vous devez joindre à votre méthode de gestionnaire de laMouseWheel
événement pour le contrôle de graphique. À partir de la signature de la méthode, je suppose que votre tableau de contrôle est nomméchData
, de sorte que vous pouvez utiliser le code suivant dans votre formulaire constructeur:Bien sûr, vous pouvez également y associer un gestionnaire à l'événement au moment de la conception. Pour ce faire, utilisez la Fenêtre Propriétés et cliquez sur l'éclair dans la barre d'outils pour passer à l'onglet "Événements". Ensuite, trouver le
MouseWheel
événement, cliquez sur la flèche déroulante et sélectionnez votre gestionnaire de signature de la méthode. Ce sera la cause de la designer d'écrire le code ci-dessus dans le fichier code-behind pour votre formulaire.A côté de cela, il y a un géant drapeau rouge dans votre code: vide
catch
bloc. Si vous n'êtes pas de la gestion d'une exception ou de faire quelque chose avec elle, alors vous ne devriez pas être l'attraper. Ce n'est pas de Pokemon, il n'y a pas de récompense pour la capture de tous.OriginalL'auteur Cody Gray