Question

Considérons un MessageBox pour inviter l'utilisateur à répondre oui ou non. Il fonctionne dans nos machines XP et une machine Windows 7 build.

Toutefois, il ne fonctionne pas sur notre Windows 7 la machine intégrée. Il n'y a pas de message d'erreur, ne se présente pas MessageBox vers le haut. Il suppose que l'utilisateur a cliqué sur le bouton Oui parce que je peux trouver le fichier de débogage créé à partir de là et createDatabase(); est appelé sans messageBox devant lui.

Je peux trouver l'ensemble (System.Windows.Forms.dll) qui est requis par le MessageBox. Il est dans le même endroit que notre machine Windows 7 build. avez-vous une idée pourquoi? merci

DialogResult result = System.Windows.Forms.MessageBox.Show(
    "Do you want to update your database?\nWarning: All your data will be erased if you click Yes !",
"Update Database",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);

if (result == DialogResult.Yes)
{
    string[] cmdLines2 = { @"C:\AndeDB\AndeDB.db is here and selected yes" };
    //it will create, open and write or overwrite
    File.WriteAllLines(@"C:\Temp\dbcheck2.txt", cmdLines2);
    createDatabase();
}
Était-ce utile?

La solution

De cette après, vous pouvez désactiver le composant « Boîte de message par défaut Répondre » de Windows 7 intégré. De plus amples informations sont disponibles sur msdn.

Autres conseils

Le mot-clé ici est « intégré ». Ces versions de Windows sont souvent configurées pour courir la tête moins (sans moniteur) ou optimisé pour fonctionner sans que personne être proche. Un MessageBox est un poison pour une telle configuration. La machine cesse de fonctionner et que personne ne peut savoir pourquoi.

Vous devez revenir à votre constructeur de système et trouver l'option qui contrôle cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top