Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688

В экземпляре не задана ссылка на объект при работе с динамическим созданием кнопок

14.10.2012, 23:13. Показов 1317. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ выдаёт ошибку- Дополнительные сведения: В экземпляре объекта не задана ссылка на объект.
Не могу понять в чем ошибся.
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
namespace Jeweller.Game.Initialize
{
    class InitializeGraphic : IInitializeGraphic
    {
        private int _n,_elementKindNumber;
        private Button[,] _buttons;
        private IUserController _contr;
        private IDataModel _pole;
 
        public InitializeGraphic(int n, int elementKindNumber)
        {
            _contr = new Controller.Controller();
            _pole = new DataModel.DataModel();
            _n = n;
            _buttons = new Button[_n, _n];
            _elementKindNumber = elementKindNumber;
            for (int i = 0; i < _n; i++)
            {
                for (int j = 0; j < _n; j++)
                {
                    _buttons[i, j] = new Button();
                    _buttons[i, j].Width = 50;
                    _buttons[i, j].Height = 50;
                    _buttons[i, j].Location = new Point(_buttons[i, j].Width * j, _buttons[i, j].Height * i);
                    _buttons[i, j].Name = i.ToString() + '_' + j.ToString();
                    _buttons[i, j].Click += Button_Click;
                }
            }
        }
 
        public void Exit()
        {
            _contr.Quit();
        }
 
        public void Button_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            var str = btn.Name.Split('_');
            var i = Convert.ToInt32(str[0]);
            var j = Convert.ToInt32(str[1]);
            _contr.CellWasClicked(i,j);
            Delete();
            InitializeButtons();
        }
 
        public void InitializeButtons()
        {
            _pole = _contr.NewGameStarted(_n, _elementKindNumber);
            // Вывод результатов генерации поля
            for (int i = 0; i < _n; i++)
            {
                for (int j = 0; j < _n; j++)
                {
                    switch (_pole[i, j])
                    {
                        case 1:
                            _buttons[i, j].BackColor = System.Drawing.Color.Aqua;
                            break;
                        case 2:
                            _buttons[i, j].BackColor = System.Drawing.Color.Red;
                            break;
                        case 3:
                            _buttons[i, j].BackColor = System.Drawing.Color.GreenYellow;
                            break;
                        case 4:
                            _buttons[i, j].BackColor = System.Drawing.Color.Yellow;
                            break;
                        case 5:
                            _buttons[i, j].BackColor = System.Drawing.Color.Violet;
                            break;
                        default:
                            _buttons[i, j].BackColor = System.Drawing.Color.White;
                            break;
                    }
                    Form1.ActiveForm.Controls.Add(_buttons[i, j]);
                }
            }
        }
 
        public void Delete()
        {
            for (int i = 0; i < _n; i++)
            {
                for (int j = 0; j < _n; j++)
                {
                    Form1.ActiveForm.Controls.Remove(_buttons[i, j]);
                }
            }
        }
    }
}
Добавлено через 1 минуту
Ах ,да выдаёт ошибку при отладке, когда нажимаю на один из баттонов.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2012, 23:13
Ответы с готовыми решениями:

В экземпляре объекта не задана ссылка на объект при работе с Graphics
Собственно вопрос в самой шапке... Как можно исправить эту ошибку?

В экземпляре объекта не задана ссылка на объект при обращении к ListBox
есть БД MySql, listBox, TextBox и кнопка я выделяю строку в listBox заношу данные в TextBox нажимаю кнопку и выдаёт: &quot;В...

В экземпляре объекта не задана ссылка на объект при обращении к reader.HasRows
Подскажите плиз. string baseName = &quot;keysKazDB.db&quot;; ArrayList list = new ArrayList(); SQLiteConnection con =...

4
13 / 13 / 0
Регистрация: 06.06.2012
Сообщений: 81
14.10.2012, 23:17
а на какое слово или строку показует ошибка?
1
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
14.10.2012, 23:23  [ТС]
На 87, до того как появилась эта строка показывал на 76.

Добавлено через 3 минуты
Суть в том что, при нажатие на один батон, а потом второй раз на другой они должны меняться местами. Ну поэтому как бы я произвожу отображение баттонов. Ну короче нажал, посмотрел, первый раз-отобразил поле, второй раз поменял- отобразил поле, а на отображение он и выдаёт ошибку.
0
29 / 29 / 2
Регистрация: 06.04.2012
Сообщений: 78
15.10.2012, 00:35
Мне кажется проблема в том что ты создаешь матрицу с кнопок)

Добавлено через 1 минуту
попробуй обычным массивом

Добавлено через 14 минут
C#
1
2
3
4
 if(Form1.ActiveForm.Controls.Contains(_button[i,j]))
   {
     Form1.ActiveForm.Controls.Remove(_button[i,j]));
   }
Попробуй поставить проверку
1
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
15.10.2012, 18:51  [ТС]
Неа, увы не сработало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2012, 18:51
Помогаю со студенческими работами здесь

В экземпляре объекта не задана ссылка на объект (при попытке записать CommandText в TableAdapter)
Ошибка &quot;В экземпляре объекта не задана ссылка на объект.&quot; при попытке записать CommandText в TableAdapter: Private Sub...

В экземпляре не задана ссылка на объект
В общем настрочил я такой код: private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e) { ...

В экземпляре объекта не задана ссылка на объект
Делаю массив из Label Label labels = new Label; Далее задаю настройки for (int i = 0; i &lt; 10; i++) ...

В экземпляре объекта не задана ссылка на объект.
Извините, может, я просто устал и не вижу элементарных вещей, но никак не могу понять, почему выдаёт ошибку... В общем-то, надо...

В экземпляре объекта не задана ссылка на объект
выдает ошибку, подскажите чего не хватает? String^ s=&quot;academia&quot;; for (int i=0; i&lt;8; i++) { char a=s; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru