Не могу передать данные из другой формы

167
12 ноября 2018, 19:00

Есть код:

Form1 frm = new Form1();
frm = this.Owner as Form1;
MessageBox.Show(frm.CaptureDevice.ToString());

Вот "CaptureDevice" в другой форме:

CaptureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice);

При компиляции выдает ошибку:

System.NullReferenceException: "Ссылка на объект не указывает на
экземпляр объекта."

Как исправить ошибку? Спасибо!

Answer 1

Указанная ошибка - это не ошибка компиляции, а исключение, которое возникает при обращении к полю, методу или свойству нулевого объекта (null). Проблема скорее всего тут:

frm = this.Owner as Form1;

Вы зачем-то перед этим создаёте переменную со второй формой, а потом берете владельца первой формы и присваиванием в эту переменную. Уверен у первой формы владелец не определен и там null, поэтому в результате frm тоже null, отсюда и ошибка.

Судя по вашему коду, вы хотели у второй формы задать владельца - первую, тогда нужно делать так:

Form1 frm = new Form1();
frm.Owner = this;
MessageBox.Show(frm.CaptureDevice.ToString());

Если дальше с прогой всё норм, то ошибки быть не должно.

READ ALSO
Асинхронный json на c#

Асинхронный json на c#

Мне надо обработать 20 элементов, полученных с помощью jsonЭлементы могут быть двух типов, и для каждого надо запросить разную дополнительную...

158
Конвертировать строку в Unicode [дубликат]

Конвертировать строку в Unicode [дубликат]

На данный вопрос уже ответили:

141
Производительность наполнения DataTable

Производительность наполнения DataTable

Заметил интересную особенность, что если наполнять DataTable запросом, где фигурирует звездочка, то он наполняется на несколько секунд дольше,...

138