2016-02-26 1 views
0

J'utilise un GMapControl en programmation C#. Je sélectionne le type de carte d'une liste déroulante. Après la sélection, la carte correspondante apparaît. Si dans le cas où la carte n'est pas disponible ou internet ne fonctionne pas, il charge la carte avec des tuiles d'exception. Je voudrais personnaliser les carreaux d'exception dans mon contrôle de carte. Les noms des cartes proviennent des GMapProviders.Personnalisation des tuiles d'exception GMapControl

comboBox1.DataSource = GMapProviders.List.ToArray(); 

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    try 
    { 
     MainMap.MapProvider = (GMapProvider)comboBox1.SelectedItem; 
    } 
    catch { MessageBox.Show("Sorry No map Available"); } 
} 

Comment personnaliser les tuiles d'exception? Il n'entrera jamais dans la partie exception.

+0

Parlez-vous de la méthode MessageBox.Show? Il a beaucoup d'options - titre, icône, boutons. Il suffit de regarder [lien] (http://www.dotnetperls.com/messagebox-show) –

+0

Non, je ne suis pas dérangé par la boîte de message. Je voudrais personnaliser les carreaux d'exception qui apparaissent sur l'écran. La zone de liste déroulante est chargée par des types de cartes prédéfinis, elle ne va donc pas à l'exception. – Lakshmi

Répondre

0

En supposant WinForms basé sur le code ci-dessus. Pour faire court, vos options sont limitées dans l'état actuel. Imaginez que vous n'ayez pas de mosaïque en cache et qu'aucune connexion Internet n'est disponible, la vignette (vide) est dessinée à partir de gmap.net.

Vous pouvez légèrement modifier l'apparence en éditant comme si les propriétés carte de Empty[...] (arrière-plan, texte, etc.):

MainMap.EmptyTileText = "Sorry, no data available."; 
MainMap.EmptyTileColor = Color.Beige; 
MainMap.EmptyMapBackground = Color.BlanchedAlmond; 

Mais vous ne serez pas se débarrasser de l'exception, qui est d'être cuit dans le carreau (au moins, je n'ai pas trouvé de moyen facile), référence this code.

+0

Cela dit rien ne vous empêche d'éditer la source et de créer une requête de tirage, si vous voulez vraiment vous impliquer. – rdoubleui

+0

Existe-t-il un moyen d'afficher un écran vide s'il n'y a pas de connexion Internet disponible au lieu de tuiles en cache? – Lakshmi

+0

Non intégré, je crois. Vous pouvez désactiver la visibilité si vous découvrez que la connexion Internet n'est pas disponible, par ex. en interrogeant une tuile en dehors de gmap.net. – rdoubleui