Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
37 / 31 / 5
Регистрация: 30.04.2014
Сообщений: 1,037

Пропадает объект события

20.10.2014, 09:48. Показов 1032. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Имеется событие, на которое подписался. Если подробнее - подключение и удаление USB-флешки (использую библиотеку LibUsbDotNet).

Обработчик события показывает что это за событие и его параметры:
C#
1
2
3
        private static void OnDeviceNotifyEvent(object sender, DeviceNotifyEventArgs e){
            MessageBox.Show(e.ToString());
        }
Если же пытаюсь вывести по частям:
C#
1
2
3
4
5
6
        private static void OnDeviceNotifyEvent(object sender, DeviceNotifyEventArgs e){
            MessageBox.Show(e.Device.IdVendor.ToString() + "  "
                + e.Device.IdProduct.ToString() + "  "
                + e.Device.Name + e.EventType.ToString() + "  "
                + e.Port.ToString());
        }
То при работе "вылетает" ошибка, что объект "e" не создан. У меня такое впечатление, что объект "е" уничтожается после первого же e.Device.IdVendor.ToString().
Может быть, его как-то зафиксировать можно?

Добавлено через 5 минут
Пишет:
"Null Reference Exception was unhandled"
Как же тогда событие приходит, если оно нулевое?

Добавлено через 22 минуты
Похоже разобрался. Исключение возникает, когда устройство удаляется. То есть Device = null. Логично, что у него нет ни Vid ни Pid.

Тему можно считать закрытой.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2014, 09:48
Ответы с готовыми решениями:

После закрытия Excel пропадает обработка события книги
Коллеги, Не нашел ничего похожего в сети, может, кто сталкивался. Есть макрос, который нужно запускать при изменении ячейки из списка. ...

Объект события в Firefox
Есть следующий код: <style> #one{ height: 100px; width: 100px; border: 1px solid red; } ...

Возвращаемый объект пропадает при выходе из функции
Коллеги, ситуация такая: Есть документ -> В документе поле -> В поле массив: путь к БД и UNID. Есть кнопка, которая открывает данный...

2
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.10.2014, 09:55
Khludenkov, если я правильно понял работу библиотеки, то тут дело скорее всего не в ней, а в самой системе. Я проходил отладчиком, и событие при подключении возникает два раза. Так что надо просто отфильтровать второй (лишний) раз. Вот, я сделал так. Может не совсем корректно, но с этой библиотекой не сталкивался, просто взял, посмотрел тестовые примеры ну и использовал...
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
using LibUsbDotNet.DeviceNotify;
 
 
namespace LibUsbDotNet_Test {
    public partial class Form1 : Form {
        public static IDeviceNotifier usbDeviceNotifier = DeviceNotifier.OpenDeviceNotifier();
        public Form1() {
            InitializeComponent();
            this.Load += new EventHandler(Form1_Load);
        }
 
        void Form1_Load(object sender, EventArgs e) {
            usbDeviceNotifier.OnDeviceNotify += new EventHandler<DeviceNotifyEventArgs>(usbDeviceNotifier_OnDeviceNotify);
        }
 
        void usbDeviceNotifier_OnDeviceNotify(object sender, DeviceNotifyEventArgs e) {
            if (e.EventType == EventType.DeviceArrival) {
                if (e.Device == null)
                    return;
                string info = string.Format("Device Name: {0}\nDevice IdProduct: {0}\nDevice IdVendor: {2}",
                e.Device.Name, e.Device.IdProduct, e.Device.IdVendor);
                MessageBox.Show(info);
            }
            
        }
    }
}
Добавлено через 47 секунд
Цитата Сообщение от Khludenkov Посмотреть сообщение
Исключение возникает, когда устройство удаляется.
Ошибаетесь. Пройдите отладчиком, при подключении событие возникает дважды.
1
37 / 31 / 5
Регистрация: 30.04.2014
Сообщений: 1,037
20.10.2014, 10:26  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Ошибаетесь. Пройдите отладчиком, при подключении событие возникает дважды.
Я думал, это у меня студия глючит. Или дребезг в разъёме.

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

Пропадает курсор и исчезает объект. Автокад 2017
Я новичок в автокаде и решил создать тумбу. Создал тумбу, решил добавить раковину, для этого закинул чертеж раковины, чертёж оказался очень...

Как узнать объект события?
Доброго времени суток. На фрейме несколько таблиц созданных в цикле. Все редактируемые. Как программно узнать какую из них я редактирую?...

Как определить объект события?
Здравствуйте, как определить объект событие например на кнопке изменился текст, нужно это событие изменение текста именно текст получить,...

Пропадает объект после изменения позиции методом Transform
Добрый день колеги :D Короче сложилась такая проблема если беру поцизию через кол то объект ракета исчазает только из за этой строчки...

Обработчик события - определить вызывающий объект
вопрос такой - предположим, есть 2 кнопки &lt;Button x:Name=&quot;button1&quot; Content=&quot;button&quot; Width=&quot;250&quot; VerticalAlignment=&quot;Top&quot; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru