Когда я пытаюсь запустить следующий код, возникает необработанное исключение. После долгих настроек кода я обнаружил, что если закомментировать строку 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] в (оболочка, вызывающая удаленное взаимодействие с проверкой) System.Windows.Forms.ComboBox :DropDownListBoxFinished () в System.Windows.Forms.ComboBox+ComboListBox.HideWindow () [0x00000] в System.Windows.Forms.ComboBox+ComboListBox.OnMouseUp (System.Windows.Forms.MouseEventArgs e) [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]
Любая помощь оценена Майклом
ОБНОВЛЕНИЕ Это пример рабочего 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);
}