J'écris une application SIG en C#. Une partie de l'application permet à l'utilisateur de sélectionner un fichier KML, puis le programme traite ce fichier. J'utilise un OpenFileDialog
, mais le problème est que tout le code est exécuté avant la fermeture du dialogue (et après que l'utilisateur a OK le fichier). Cela prend un certain temps parce que le programme doit zoomer et faire d'autres choses. Y at-il un moyen de fermer la boîte de dialogue par programmation avant que mon code est exécuté?Force la boîte de dialogue close in C#
EDIT: Un code pour ceux qui le demandent.
private void OnKMLFileSet(object sender, CancelEventArgs e)
{
Polygon polygon = KmlToPolygon(openFileDialog2.FileName);
// After this, I no longer need the file, but the dialog stays open until the end of the method
Graphic graphic = new Graphic();
graphic.Geometry = polygon;
textBox1.Text = string.Format("{0:n}", CalculateAreaInSqKilometers(polygon)).Split('.')[0];
textBox2.Text = string.Format("{0:n}", CalculateAreaInSqMiles(polygon)).Split('.')[0];
textBox3.Text = string.Format("{0:n}", CalculateAreaInSqKnots(polygon)).Split('.')[0];
Note polyInfo = new Note("Polygon with nautical area: " + textBox3.Text, polygon);
map.Map.ChildItems.Add(polyInfo);
map.ZoomTo(polygon.GetEnvelope());
}
Comment votre application peut-elle continuer le traitement lorsque OpenFileDialog est modale? – jgauffin
Je dis qu'après qu'un utilisateur a sélectionné un fichier, est-il possible de simplement masquer la boîte de dialogue, puis de traiter le fichier? –
Laissez-moi reformuler. Je lis dans le fichier (coordonnées et autres) qui ne prend pas de temps. Mais après cela, je veux changer la couleur du graphique sur la carte, et le zoom, et quelques autres choses ... ne nécessitant pas le fichier. Pourtant, le dialogue reste ouvert. –