Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93

Ссылка на объект не указывает на экземпляр объекта при обращении к свойству tag

03.12.2012, 08:26. Показов 2228. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток. Объясните пожалуйста откуда сие берется..
Миниатюры
Ссылка на объект не указывает на экземпляр объекта при обращении к свойству tag  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2012, 08:26
Ответы с готовыми решениями:

Ссылка на объект не указывает на экземпляр объекта при обращении к элементу формы
Есть Form1, где создается Form2: Form2 form2 = new Form2; На form2 есть некий label1, а на Form1 код, который этому label задает текст:...

Ссылка на объект не указывает на экземпляр объекта при обращении к DGV другой формы
не могу решить проблему(........ pib это textbox

Ссылка на объект не указывает на экземпляр объекта при динамическом создании CheckBox
Помогите, пжст, снять ошибку "Ссылка на объект не указывает на экземпляр объекта." В общем в цикле создаю чекбоксы, которые мне...

13
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
03.12.2012, 08:53
cntrl.Tag равен null
0
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
03.12.2012, 09:06  [ТС]
Получается cntrl.Tag должен указать на Radiobutton? а как тогда переписать эту функцию?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
03.12.2012, 09:10
Вы же автор кода, вам виднее куда должен указывать Tag.

Tag используйтся для хранения какой-либо связанной с контролом дополнительной информации. Почему у вас он null и зачем вы вызываете ToString() у него - на эти вопросы можете ответить только вы.
0
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
03.12.2012, 10:03  [ТС]
Этой функцией я хочу получить из группы group, значение, какой по счету элемент checked,и далее там уже по switch выбирается и создается объект. Тогда переформулировка - как узнать какой Radiobutton checked?

Добавлено через 34 минуты
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
   
...
 private ThreadPriority IndexToPriority(int priority)
        {
            switch (priority)
            {
                case 0: return ThreadPriority.Lowest;
                case 1: return ThreadPriority.BelowNormal;
                case 2: return ThreadPriority.Normal;
                case 3: return ThreadPriority.AboveNormal;
                case 4: return ThreadPriority.Highest;
                default: return ThreadPriority.Normal;
            }
        }
        private int GetRadioIndex(GroupBox group)
        {
            foreach (Control c in group.Controls)
            {
                if (c.GetType() == typeof(RadioButton))
                {
                    RadioButton rb = c as RadioButton;
                    if (rb.Checked)
                    {
                        return int.Parse(c.Tag.ToString()); 
                    }
                }
            }
            return -1;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            BetaProc process;
            switch (GetRadioIndex(processType))
            {
                case 0: process = new FibbonProc();
                    break;
                case 1: process = new ProcRandom();
                    break;
                case 2: process = new SinProc();
                    break;
                default: process = new ProcRandom();
                    break;
            }
            process.SwaitTostart = wh1;
            process.reporter = richTextBox1;
            process.reporterD = dataGridView1;
            process.Start();
            process.Prior = IndexToPriority(GetRadioIndex(ProcessPriority));
            manager.AddThread(process);
            manager.ShowInDataView(process);
            process.WorkingStateChanged += new EventHandler(a_WorkingStateChanged);
            // расчёт процессорноного времени
            if (process.Prior > HighestPriority) HighestPriority = process.Prior;
            ProcessPriorities[index] = process.Prior;
            if (index >= 1)
            {
                double FreeProcessorTime = 100;
                double TimePerProcess = 100 / (index + 1);
                double PriorityWeight = 0;
                int HighPriorityProcessCount = 0;
                // расчёт для процессов с приоритетом ниже самого большого
                for (int i = 0; i < index + 1; i++)
                {
                    if (ProcessPriorities[i] != HighestPriority)
                    {
                        switch (ProcessPriorities[i])
                        {
                            case ThreadPriority.Lowest: PriorityWeight = 0.2;
                                break;
                            case ThreadPriority.BelowNormal: PriorityWeight = 0.4;
                                break;
                            case ThreadPriority.Normal: PriorityWeight = 0.6;
                                break;
                            case ThreadPriority.AboveNormal: PriorityWeight = 0.8;
                                break;
                        }
                        FreeProcessorTime -= TimePerProcess * PriorityWeight;
                        dataGridView1.Rows[i].Cells[4].Value = Math.Round(TimePerProcess * PriorityWeight);
                    }
                    else HighPriorityProcessCount++;
                }
                // расчёт для процессов с самым большим приоритетом
                for (int i = 0; i < index + 1; i++)
                {
                    if (ProcessPriorities[i] == HighestPriority)
                    {
                        dataGridView1.Rows[i].Cells[4].Value = Math.Round(FreeProcessorTime / HighPriorityProcessCount);
                    }
                }
            }
            else dataGridView1.Rows[0].Cells[4].Value = "100";
            index++;
        }
        void a_WorkingStateChanged(object sender, EventArgs e)
        {
            BetaProc b = sender as BetaProc;
            manager.SetWaitProperty(b);
        }
       
        private void button2_Click(object sender, EventArgs e)
        {
            int processID = (int)dataGridView1.SelectedRows[0].Cells[0].Value - 1;
            if (processID != -1 && (string)manager.reporterD.Rows[processID].Cells[3].Value != "Завершен")
            {
                manager.ReturnMas()[processID].Stop();
                manager.reporterD.Rows[processID].Cells[2].Value = "Приостановлен";
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
            int processID = (int)dataGridView1.SelectedRows[0].Cells[0].Value - 1;
            if ((string)manager.reporterD.Rows[processID].Cells[2].Value == "Приостановлен")
            {
                manager.ReturnMas()[processID].Restart();
                manager.reporterD.Rows[processID].Cells[2].Value = "Возобновлен";
            }
        }
        private void button4_Click(object sender, EventArgs e)
        {
            int processID = (int)dataGridView1.SelectedRows[0].Cells[0].Value - 1;
            if (processID != -1)
            {
                manager.ReturnMas()[processID].Delete();
                manager.reporterD.Rows[processID].Cells[2].Value = "Завершен";
            }
        }
...
Пожалуйста, уважаемые форумчане гляньте код...
0
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
03.12.2012, 10:26  [ТС]
Может ктонить код глянет, я файл прилагаю....
Вложения
Тип файла: zip ProcMan.zip (9.6 Кб, 5 просмотров)
0
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
03.12.2012, 11:27  [ТС]
эх... я ведь и проект уже выложил...
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
03.12.2012, 12:45
Где значения в Tag-то записываются?
0
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
03.12.2012, 13:33  [ТС]
а откуда их заполнять?

Добавлено через 15 минут
Я так понял мне надосначала заполнять этот Tag... как то удобнее мб есть способ чтобы получить какой именно элемент в группе отчекан ??

Добавлено через 17 минут
Тему вверх, может кто помочь???
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
03.12.2012, 13:50
Цитата Сообщение от snw Посмотреть сообщение
как то удобнее мб есть способ чтобы получить какой именно элемент в группе отчекан ??
Так вы же и так уже получили элемент в группе который отчекан:
C#
1
2
3
4
5
6
7
8
9
10
11
12
            foreach (Control c in group.Controls)
            {
                if (c.GetType() == typeof(RadioButton))
                {
                    RadioButton rb = c as RadioButton;
                    if (rb.Checked)
                    {
 
                        //вот тут мы точно знаем, что выбран именно rb
                    }
                }
            }
Потом вы можете делать с ним уже все что угодно.
можете вернуть из метода - return rb . Можете что угодно с ним делать.
1
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 13:53
Тебе что узнать нужно? Какой радиобаттон выбран? тогда не совсем понятно, зачем ты для этого используешь свойство Tag, потому что данное свойство ты задаешь сам для каждого радиобаттона отдельно. Если ты его не задал до использования, разумеется отладчик ругнется на тебя. Так что выход для определения выбранного радиобаттона: либо задавай для каждого радиобаттона свойство Tag где-то на этапе их инициализации, или используй свойство, которое по умолчанию нулю не равняется, к примеру его Имя. Также, если радиобаттоны включены у тебя в РадиоГруппу, можно воспользоваться ее свойством Выбранный итем (или что-то подобное, уже не упомню).
1
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
03.12.2012, 14:12  [ТС]
да вы мне прям глаза открыли действительно работает если задавать для каждого свои параметры... фууух ну хоть чтото хорошее за 5 часов при отладке теперь пошли цифры в правое окошко, но увы NullExeption выскакивает в том месте

Добавлено через 12 минут
Я поставил в свойствах Tag где стоят контролы с типом процесса, 0, 1 ,2 соответственно они однако заработали.. пол программы работает
0
 Аватар для kesean
292 / 291 / 108
Регистрация: 04.09.2010
Сообщений: 638
03.12.2012, 16:19
Цитата Сообщение от snw Посмотреть сообщение
Я поставил в свойствах Tag где стоят контролы с типом процесса, 0, 1 ,2 соответственно
а для радиобатонов с 4 по 8?
1
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
03.12.2012, 16:25  [ТС]
простите мне мою необразованность..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2012, 16:25
Помогаю со студенческими работами здесь

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

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

Ссылка на объект не указывает на экземпляр объекта
Ругается на красную строчку помогите. private void button4_Click_1(object sender, EventArgs e) { int columns =...

Ссылка на объект не указывает на экземпляр объекта
Как исправить исключение? public void AddFirst() { Book item = new Book(); item.Input(); ...

Ссылка на объект не указывает на экземпляр объекта
строка где появляется ошибка dbDataSet.Licenz.FindByIdLic(id).Delete(); Остальной код класса public partial class Form1 : Form ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru