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

Открыть форму и передать введенную в ней информацию в другую. Ошибка NullReferenceException

23.02.2014, 13:15. Показов 967. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять в чем дело, надо открыть форму и передать введенную в ней информацию в другую. В самом конце при присваивании новой информации пишет "An unhandled exception of type 'System.NullReferenceException' occurred in SecretProject.exe Additional information: Ссылка на объект не указывает на экземпляр объекта." Хотя, если вставить перед присваиванием MessageBox.Show() и вывести переменную значение показывает верное.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
own_confirm.ShowDialog(); //Открываем форму с вводом названия 
 
private void l_confirm_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(l_name.Text)) { MessageBox.Show("Ошибка", "Поле не может быть пустым!"); } //Проверяем поле на наличие в нем названия
            else { own.give_name(l_name.Text); this.Close(); } //l_name - textbox
        }
 
 public void give_name(string name = "Без имени")
        {
            MessageBox.Show(name); // Значение выводит
            own_l.Text = name; //Выдает ошибку   own_l - label
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2014, 13:15
Ответы с готовыми решениями:

По нажатию на кнопку открыть другую форму и передать данные в конструктор класса
Доброго времени суток. У Меня уже просто горит от этого бейсика. Суть вопрос такова, нужно создать форму и открыть ее, передав в...

Закрыть форму/открыть другую форму при нажатии клавиши
Как сделать так что бы форма закрывалась или открывала другую форму нажатием любой клавиши. Спасибо заранее!

Как открыть одну форму через другую форму в winforms?
Как мне сделать так, что при выборе какой-либо опции из списка одна форма закрывалась, а другая - открывалась? Такой код полностью...

4
 Аватар для dirtez0
44 / 44 / 19
Регистрация: 20.01.2014
Сообщений: 87
23.02.2014, 13:19
Ну ясно же написано, что переменная не указывает на объект. Возможно вы просто опечатались.
Где объявлена эта переменная?
0
0 / 0 / 1
Регистрация: 19.08.2013
Сообщений: 71
23.02.2014, 13:32  [ТС]
C#
1
public void give_name(string name = "Без имени")
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.02.2014, 15:53
и в чем связь?
C#
1
2
3
4
5
6
7
8
public void give_name(string name = "Без имени")
        {
            MessageBox.Show(name); // Значение выводит
            if (own_l != null)_
               own_l.Text = name; //Выдает ошибку   own_l - label
            else
               MessageBox.Show("Объекта own_l не существует, его значение = " + own_l);
        }
0
0 / 0 / 1
Регистрация: 19.08.2013
Сообщений: 71
24.02.2014, 11:25  [ТС]
Задача стоит в том, чтобы при нажатии на кнопку, выскакивало диалоговое окно с полем для ввода и кнопкой "принять". При нажатии на кнопку принять и, если текстбокс не пустой, программа создает на другой форме текстбокс и label. ПРоблема в том, что label'u текст присвоить не получается, атк, как он создается в процессе, а не стоит по-умолчанию.
Кликните здесь для просмотра всего текста

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
/*Код первой формы */
 public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public delegate void delg(int i = 0);
        TextBox own; public Label own_l; //Объявляем поля
        int _owndef_x = 158; int _own_def_y = 160; //Координаты по умолчанию //default x = 158, y = 160
        static int i = 0; //Счетчик полей и предел цикла
        private void _own_Click(object sender, EventArgs e) //Функция добавления нового поля
        {
            Form7 own_confirm = new Form7(); 
            own_confirm.ShowDialog();
            create_own();
        }
        public void create_own(string labelText = "Без имени")//Форма ввода названия поля
        {
            i++; //Увеличиваем счетчик на 1
            _own.Location = new Point(_owndef_x, _own_def_y + 28); //Координаты кнопки "Своё"
            for (int j = 0; j <= i; j++) //Создание полей в цикле
            {
                own = new TextBox(); own_l = new Label(); //Создание полей
                own.Name = "t_own" + j.ToString(); own_l.Name = "l_own" + j.ToString(); this.own_l.Text = labelText; //Даем полям различные имена
                this.Controls.Add(own); own.Location = new Point(_owndef_x, _own_def_y); //Координаты textbox'a
                this.Controls.Add(own_l); own_l.Location = new Point(_owndef_x - 147, _own_def_y + 7); //Координаты label'a
            }
            _own_def_y += 28; //Увеличиваем дефолтную координату y, для того, чтобы поля не накладывались друг на друга
        }

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*Код второй формы*/
 public partial class Form7 : Form
    {
        public Form7()
        {
            InitializeComponent();
        }
        Form2 fr = new Form2();
        private void l_confirm_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(l_name.Text)) { MessageBox.Show("Ошибка", "Поле не может быть пустым!"); } //Проверяем поле на наличие в нем названия
            else { fr.create_own(l_name.Text); this.Close(); }
        }
    }


Добавлено через 16 часов 43 минуты
Всё, разобрался сам. Надо было завести переменную в которой хранился бы текст.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
//На основной форме
        private static string label;
        public string labelName
        {
            get { return label; }
            set { label = value; }
        }
        own_l.Text = labelName;
C#
1
2
//На дополнительной форме
fr.labelName = l_name.Text;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2014, 11:25
Помогаю со студенческими работами здесь

Передать информацию на другую страницу
Здравствуйте! Я новичок в PHP, перерыл кучу тем, так и не нашел ничего похожего на мою. Можно ли сделать такую вещь? На первой странице у...

Как отобразить информацию (введенную в форму), в новом окне и во всплывающем окне?
Подскажите пожалуйста, у меня есть форма в нее делаю запись, как сделать так, что бы после введения данных они отобразились в 2 ух окнах...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru