Когда я пытаюсь запустить следующий код, это вызывает необработанное исключение. После долгих изменений кода, который я нашел, если закомментировал строку MessageBox.Show, проблема исчезла! Необычно я использовал сообщения MessageBox.Show в других сегментах catch {} в других частях кода без проблем. Мой вопрос: кто-нибудь знает, почему это вызывает исключение?
(P.s Reports_Group_Chooser - ComboBox)
Код:
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;
}
Ошибка (ну, большая ее часть):
Необработанное исключение:
System.NullReferenceException: объект
ссылка не установлена на экземпляр
объект в
System.Windows.Forms.ComboBox.DropDownListBoxFinished
() [0x00000] at (обертка
Remoting-Invoke-с проверкой)
System.Windows.Forms.ComboBox: DropDownListBoxFinished
() в
System.Windows.Forms.ComboBox + ComboListBox.HideWindow
() [0x00000] в
System.Windows.Forms.ComboBox + ComboListBox.OnMouseUp
(System.Windows.Forms.MouseEventArgs
е) [0x00000] в
System.Windows.Forms.Control.WmLButtonUp
(System.Windows.Forms.Message & m)
[0x00000] в
System.Windows.Forms.Control.WndProc
(System.Windows.Forms.Message & m)
[0x00000] в
System.Windows.Forms.ComboBox + ComboListBox.WndProc
(System.Windows.Forms.Message & m)
[0x00000] в
System.Windows.Forms.Control + ControlWindowTarget.OnMessage
(System.Windows.Forms.Message & m)
[0x00000] в
System.Windows.Forms.Control + ControlNativeWindow.WndProc
(System.Windows.Forms.Message & m)
[0x00000] в
System.Windows.Forms.NativeWindow.WndProc
(IntPtr hWnd, Msg msg, IntPtr wParam,
IntPtr lParam) [0x00000] в
System.Windows.Forms.XplatUIX11.DispatchMessage
(System.Windows.Forms.MSG & msg)
[0x00000] в
System.Windows.Forms.XplatUI.DispatchMessage
(System.Windows.Forms.MSG & msg)
[0x00000] в
System.Windows.Forms.Application.RunLoop
(Булев Модал,
System.Windows.Forms.ApplicationContext
контекст) [0x00000]
Любая помощь приветствуется
Michael
UPDATE
Это пример работающего MessageBox.Show в моем коде, который не вызывает ошибку:
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");
}
Обновление обновления:
Кажется, проблема в том, что внутри события выпадающего списка есть MessageBox.Show:
Следующий код по-прежнему представляет ту же ошибку:
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);
}