powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ошибка при закрытии формы.
25 сообщений из 26, страница 1 из 2
Ошибка при закрытии формы.
    #38357957
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парни подскажите пожалуйста.

На форме кнопка, нажимаю перехожу на другую форму. Если нажать на крестик закрытия вылетает ошибка.

NullReferenceException was unhandled.

Object reference not set to an instance of an object.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38357989
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591Парни подскажите пожалуйста.

На форме кнопка, нажимаю перехожу на другую форму. Если нажать на крестик закрытия вылетает ошибка.

NullReferenceException was unhandled.

Object reference not set to an instance of an object.

что подсказать?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38357991
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38357995
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591,

?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358002
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
private void ProceedMail(object sender, EventArgs e)
        {
            Tel.GridViewRowInfo trow = Mails.GetCurrentRow();
            MailAttributes ma = new MailAttributes();
            ma.To = Mails.GetCell("column_mFrom");
            ma.Subject = Mails.GetCell("column_mSubject");
            ma.filename = @"c:\tmp\currmail.html";
            ma.ClaimID = Convert.ToInt32(Claims.ID);

                string htmlbody = webBrowser1.Document.Body.InnerHtml;
                File.WriteAllText(string.Format(@"c:\tmp\{0}", "currmail.html"), htmlbody, Encoding.GetEncoding(1251));

                
                using (FormMail _fm = new FormMail(ma))
                {
                    
                    DialogResult fmd;
                    fmd = _fm.ShowDialog();

                    ma = (MailAttributes)_fm.Tag;
                    
                    if (ma.filename != "")
                    {

                        string[] filehtmlbody = File.ReadAllLines(ma.filename);


                        string htmlbodystr = "";

                        foreach (string tmpstr in filehtmlbody)
                        {
                            htmlbodystr = htmlbodystr + tmpstr;
                        }

                        cmdParametrs.Clear();
                        cmdParametrs.Add(Param(SqlDbType.NVarChar, ParameterDirection.Input, "@mSt", ma.St));
                       

                        using (UniDataAdapter daAddMail = new UniDataAdapter(dsHelpDesk, "tAl", "dbo.sp_Al", CommandType.StoredProcedure, cmdParametrs))
                        {
                            FileInfo fInfo = new FileInfo(ma.filename);
                            using (FileStream fStream = fInfo.Open(FileMode.Open, FileAccess.Read, FileShare.Read))
                            {
                                byte[] BinaryContent = new byte[fInfo.Length];
                                fStream.Read(BinaryContent, 0, (int)fInfo.Length);

                                foreach (string attachment in ma.AttachmentFileName)
                                {
                                    cmdParametrs.Clear();
                                    cmdParametrs.Add(Param(SqlDbType.Int, ParameterDirection.Input, "@atMl_ID", daAddMl.Value("ID")));
                                    

                                    UniDataAdapter daAddMailAttach = new UniDataAdapter(dsHelpDesk, "tAh", "dbo.sp_Ah", CommandType.StoredProcedure, cmdParametrs);
                                }
                            }
                        }
                    }

                }   
        }




Вот тут ошибку пишет
Код: c#
1.
ma = (MailAttributes)_fm.Tag;
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358229
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторma = (MailAttributes)_fm.Tag;
проверь что в _fm.Tag не null
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358248
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ermak,

падает значение null. Получается, что при закрытии формы на кретик. Значение у нас null и происходит ошибка.

Нужно прописать условие?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358336
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, решил вот так

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DialogResult fmd;
                    fmd = _fm.ShowDialog();
                    if (fmd == DialogResult.Cancel)
                    {
                        _fm.Show();
                    }
                    else
                    {

                    }
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358570
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591,

если форма закрыта cancelом, то показать форму еще раз. А где логика? Вам конечно виднее...
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358698
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris,

В смысле. Форма открывается при нажатии кнопки. Человек если не отправит через эту форму нечего форма просто эта закроется. А раньше ошибка вылетала.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358700
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DialogResult fmd;
                    fmd = _fm.ShowDialog();
                    if (fmd == DialogResult.Cancel)
                    {
                        _fm.Show();
                    }
                    else
                    {

ТУТ ВЕСЬ КОД НАЧИНАЯ СО СТРОЧКИ ma = (MailAttributes)_fm.Tag;

                    }
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358836
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591,

и это работает?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38358841
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясни, зачем нужно вот это
Код: c#
1.
2.
3.
4.
if (fmd == DialogResult.Cancel)
                    {
                        _fm.Show();
                    }
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38359662
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris, если нажали кнопку, а точнее крестик на форме, то форма закрывается. Что тут не понятного то?

Или вы видите другое решение этой задачи?

Без этого условия выходила ошибка, если есть другое решение тогда подскажите. У меня пока так работает и очень хорошо работает.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38359680
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591, непонятно зачем заново показывать только что закрытый диалог. Раз пользователь нажал крестик значит ему это окно не нужно, а ты снова его выводишь. Причем сначала ты показываещь форму как модальный даиалог, затем как обычное окно. Всё это и вызывает непонимание.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38359760
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris, да
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38359780
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591,

зачем _fm.Show()?

То ли лыжи не едут, то ли...
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38359797
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял что вы подметили.

у меня _fm.Show(); а нужно по смыслу вот это _fm.Close();

Хотя так и так работает. ХЗ.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38359814
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591,

если ты получил DialogResult от ShowDialog, то это значит, что форма и так закрыта. Никакой Close не нужен.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38359826
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris, не понял все равно. На примере объясни пожалуйста.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38359835
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591,

ShowDialog возвращает результат тогда, когда пользователь закрывает диалог.

Код: c#
1.
2.
3.
4.
5.
6.
7.
if (someDialog_.ShowDialog() == DialogResult.IDOK)
{
// Здесь выполнение начнется не раньше, чем пользователь закроет диалог
....
}
//Здесь тоже
....
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38360026
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris, не понял все равно.

Просто в моей программе при нажатии на крестик закрытия формы. Одно значение принимало null и программа закрывалась с ошибкой. Чтоб это избежать, я сделал условие если при нажатии на крестик не продолжало дальше выполняться код программы. Вот и все.

Я просто честно не пойму, что вы хотите показать. Прошу объяснить. Ибо вы меня поставили в тупик.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38360034
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591,

Попробуйте написать вот это
Код: c#
1.
2.
3.
4.
if (_fm.ShowDialog() == DialogResult.OK)
                    {
                        ТУТ ВЕСЬ КОД НАЧИНАЯ СО СТРОЧКИ ma = (MailAttributes)_fm.Tag;
                    }



вместо вашего кода из
авторСпасибо всем, решил вот так


Если не будет работать, то оставляйте все как есть сейчас.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38360057
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris, Спасибо и так и так работает.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #38360075
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591, но видишь какая беда, допустим у нас будет 3 кнопки. И в твоем случаи уже ты не сможешь написать условие. Без объявленной переменной и т.д.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ошибка при закрытии формы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]