Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 31.01.2014
Сообщений: 50

Ошибка "Ссылка на объект не указывает на экземпляр объекта"

09.06.2017, 12:14. Показов 1272. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После нажатия на кнопку авторизации:

Открывается форма тестирования и собственно должно начаться тестирование при нажатии на кнопку ОК(button1), но тут вылазит ошибка:

Текст программы:
  1. 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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    
    namespace Crypt
    {
        public partial class Form1 : MetroFramework.Forms.MetroForm
        {
            bool _logOut;
            public Form1()
            {
                InitializeComponent();
            }
     
            private void lnkLogOut_Click(object sender, EventArgs e)
            {
                _logOut = true;
                this.Close();
                frmAuthorization.Instance.Show();
            }
     
            private void Form1_FormClosed(object sender, FormClosedEventArgs e)
            {
                //закрытие формы Form1
                if (!_logOut)
                    Application.Exit();
            }
            string fpath;
            string fname;
            System.Xml.XmlReader xmlReader;
            string qw;
            string[] answ = new string[3];
            int right;
            int otv;
            int n;
            int nv;
            int per;
            int mode;
     
            //конструктор формы
            public Form1(string[] args)
            {
                InitializeComponent();
                radioButton1.Visible = false;
                radioButton2.Visible = false;
                radioButton3.Visible = false;
     
                // имя файла теста должно быть указано
                // в качестве парамета команды запуска программы
     
                if (args.Length > 0)
                {
                    if (args[0].IndexOf(":") == -1)
                    {
                        fpath = Application.StartupPath + "";
                        fname = args[0];
                    }
     
                    else
                    {
                        fpath = args[0].Substring(0, args[0].LastIndexOf("") + 1);
                        fname = args[0].Substring(args[0].LastIndexOf("") + 1);
                    }
                    try
                    {
                        xmlReader = new System.Xml.XmlTextReader(fpath + fname);
                        xmlReader.Read();
                        mode = 0;
                        n = 0;
                        this.showHead();
                        this.showDescription();
                    }
                    catch (Exception exc)
                    {
                        label1.Text = "Ошибка доступа к файлу" + fpath + fname;
                        MessageBox.Show("Ошибка доступа к файлу.\n" +
                            fpath + fname + "\n",
                            "Тестирование",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                        mode = 2;
                    }
                }
                else
                {
                    label1.Text =
                        "Файл теста необходимо указать" +
                        "в команде запуска программы.\n" +
                      "или 'ctypt c:\\spb.xml'.";
                    mode = 2;
                }
            }
            private void showHead()
            {
                // ищем узел <head>
                do xmlReader.Read();
                while (xmlReader.Name != "head");
                // считываем заголовок
                xmlReader.Read();
                // вывести название теста в заголовок окна
                this.Text = xmlReader.Value;
                // выходим из узла <head>
                xmlReader.Read();
     
            }
            // выводит описание теста
            private void showDescription()
            {
                //ищем узел <description>
                do xmlReader.Read();
                while (xmlReader.Name != "description");
                xmlReader.Read();
                label1.Text = xmlReader.Value;
                xmlReader.Read();
                do xmlReader.Read();
                while (xmlReader.Name != "qw");
                xmlReader.Read();
            }
            private Boolean getQw()
            {
                xmlReader.Read();
                if (xmlReader.Name == "q")
                {
                    qw = xmlReader.GetAttribute("text");
                    xmlReader.Read();
                    int i = 0;
                    while (xmlReader.Name != "q")
                    {
                        xmlReader.Read();
                        if (xmlReader.Name == "a")
                        {
                            if (xmlReader.GetAttribute("right") == "yes")
                                right = i;
                            xmlReader.Read();
                            if (i < 3) answ[i] = xmlReader.Value;
                            xmlReader.Read();
                            i++;
                        }
                    }
                    xmlReader.Read();
                    return true;
                }
                else
                    return false;
            }
            private void showQw()
            {
                label1.Text = qw;
                radioButton1.Text = answ[0];
                radioButton2.Top = radioButton1.Top + 24; ;
                radioButton2.Text = answ[1];
                radioButton3.Top = radioButton2.Top + 24; ;
                radioButton3.Text = answ[2];
                radioButton4.Checked = true;
                button1.Enabled = false;
            }
     
            private void radioButton1_Click(object sender, EventArgs e)
            {
                if ((RadioButton)sender == radioButton1) otv = 0;
                if ((RadioButton)sender == radioButton2) otv = 1;
                if ((RadioButton)sender == radioButton3) otv = 2;
                button1.Enabled = true;
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                switch (mode)
                {
                    case 0:
                        radioButton1.Visible = true;
                        radioButton2.Visible = true;
                        radioButton3.Visible = true;
     
                        this.getQw();
                        this.showQw();
     
                        mode = 1;
     
                        button1.Enabled = false;
                        radioButton4.Checked = true;
                        break;
     
                    case 1:
                        nv++;
     
                        if (otv == right) n++;
     
                        if (this.getQw()) this.showQw();
                        else
                        {
                            radioButton1.Visible = false;
                            radioButton2.Visible = false;
                            radioButton3.Visible = false;
     
                            pictureBox1.Visible = false;
     
                            this.showLevel();
     
                            mode = 2;
                        }
                        break;
                    case 2:
                        this.Close();
                        break;
                }
            }
            private void showLevel()
            {
                do xmlReader.Read();
                while (xmlReader.Name != "levels");
                xmlReader.Read();
                while (xmlReader.Name != "levels")
                {
                xmlReader.Read();
                if(xmlReader.Name=="level")
                    if(n>=System.Convert.ToInt32(xmlReader.GetAttribute("score")))
                        break;
                }
                per = (n / nv) * 100;
                string res = Convert.ToString(per);
                label1.Text = "Тестирование завершено.\n" +
                    "Количество правильных ответов: " + n.ToString() +
                    "из" + nv.ToString() + "(" + res + "%).\n" + xmlReader.GetAttribute("text");
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
     
            }
     
     
        }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2017, 12:14
Ответы с готовыми решениями:

Ошибка ссылка на объект не указывает на экземпляр объекта
Ругается на строку, какие могут быть предложения? if (query.SingleOrDefault() != null) { ...

Ошибка: ссылка на объект не указывает на экземпляр объекта
Недавно начал учить C#, мне нужно чтобы логин передался с одной формы из текстбокса в другую форму в другой текстбокс, и в дальнейшем...

Ошибка: Ссылка на объект не указывает на экземпляр объекта
Пытаюсь сделать инверсию в графическом редакторе, вот код метода BackgroundWorker worker = sender as BackgroundWorker; ...

1
0 / 0 / 1
Регистрация: 31.01.2014
Сообщений: 50
09.06.2017, 21:56  [ТС]
Ошибка в 117 и 171 строках.

Добавлено через 2 часа 49 минут
Дорогие форумчане, знатоки C#, помогите разобраться. Я разобрался в ошибках (или нет). Суть в том, что если я делаю Form1 запускающейся и задаю args в скобках, то работает. Но как сделать так, чтобы открывалась другая форма (Form2) при запуске приложения, а форма Form1 работала исправно?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
  static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1(args));
        }
    }
Добавлено через 6 часов 49 минут

Надеюсь, хоть один откликнется...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2017, 21:56
Помогаю со студенческими работами здесь

Ошибка 'Ссылка на объект не указывает на экземпляр объекта.' в VkBotFramework
Вот мой код: void UpdateReceived(object sender, GroupUpdateReceivedEventArgs eventArgs) { ...

Ссылка на объект не указывает на экземпляр объекта
Доброго времени суток! Написал небольшой код, все нормально, все отрабатывает как надо. проверил на других машинах с Windows 10...

Ссылка на объект не указывает на экземпляр объекта
namespace CourseTackCS { class WindowsList { public List&lt;MyWindow&gt; objectList; public WindowsList()...

Ссылка на объект не указывает на экземпляр объекта
Всем привет! Мне необходимо написать следующее приложение: на форме один по периметру бегает Label и плавно меняет свой цвет. На второй...

Ссылка на объект не указывает на экземпляр объекта
Что не так?? static void Main(string args) { BookLinkedList b1 = new BookLinkedList();...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru