Lorsque j'essaie d'exécuter le code suivant Il provoque une exception non gérée. Après beaucoup de tweeking avec le code que j'ai trouvé si mis en commentaire la ligne MessageBox.Show le problème s'en va! J'ai rarement utilisé les messages MessageBox.Show dans d'autres segments catch {} dans d'autres parties du code sans problème. Ma question est de savoir pourquoi il provoque l'exception?Problème avec MessageBox.Show dans la capture
(Ps Reports_Group_Chooser est un ComboBox)
Le code:
string GroupName= (string)Reports_Group_Chooser.SelectedItem;
byte[] ConfigBytes= new byte[]{};
try{
ConfigBytes= File.ReadAllBytes("Reports/"+ GroupName.ToLower() +".grp");
}catch{
MessageBox.Show("The file for this group is missing. Cannot continue.","File Error",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Reports_Group_Chooser.Items.RemoveAt(NewGroup);
Reports_Group_Chooser.SelectedIndex= 0;
}
L'erreur (bien la plus grande partie):
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object at System.Windows.Forms.ComboBox.DropDownListBoxFinished () [0x00000] at (wrapper remoting-invoke-with-check) System.Windows.Forms.ComboBox:DropDownListBoxFinished () at System.Windows.Forms.ComboBox+ComboListBox.HideWindow () [0x00000] at System.Windows.Forms.ComboBox+ComboListBox.OnMouseUp (System.Windows.Forms.MouseEventArgs e) [0x00000] at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00000] at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] at System.Windows.Forms.ComboBox+ComboListBox.WndProc (System.Windows.Forms.Message& m) [0x00000] at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] at System.Windows.Forms.XplatUIX11.DispatchMessage (System.Windows.Forms.MSG& msg) [0x00000] at System.Windows.Forms.XplatUI.DispatchMessage (System.Windows.Forms.MSG& msg) [0x00000] at System.Windows.Forms.Application.RunLoop (Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x00000]
Toute aide appréciée Michael
UPDATE Ceci est un exemple de fa MessageBox.Show travaillant dans mon code qui ne provoque pas une erreur:
GlobalConfig= new Dictionary<string, string>();
byte[] ConfigBytes= new byte[]{};
try{
ConfigBytes= System.IO.File.ReadAllBytes("Config.cfg");
}catch{
MessageBox.Show("Global ettings file does not exist. Cannot continue.","File Error",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
GlobalConfig.Add("StoreNumber","");
GlobalConfig.Add("Error","Y");
}
mise à jour de mise à jour:
Il semble que le problème est juste d'avoir le MessageBox.Show dans un événement combobox: Le code suivant encore présente la même erreur:
private void Reports_GroupChanged(object sender,EventArgs e){
MessageBox.Show("The file for this group is missing. Cannot continue.","File Error",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
Vous erreur est avec la zone de liste déroulante pas la boîte de message. Le problème est que la pile d'appel ne contient pas les numéros de ligne. Est-ce que c'est dans WPF? APS.NET? Forums Windows? – Tony
Désolé, je suis vraiment nouveau à la programmation C# que voulez-vous dire "Est-ce dans les forums WPF? APS.NET? Windows?" – redorkulated