Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.135.241.191] |
|
Сообщ.
#1
,
|
|
|
Не получается словить события в приложении Windows Forms с подключенной .NET библиотекой.
Использую .Net CF SP2, VS2005 SP1. Устройство HTC HD2 Windows Mobile 6.5 Далее приведены участки кода. Запустив тоже приложение на десктопе все работает, но на кпк не срабатывает событие. Пробовал все возможные вариации с делегатами и событиями. Скачал исходники openNetСF и посмотрел как там релизована работа с событиями и все повторил, но не работает на КПК всеравно. Form1.cs public partial class Form1 : Form { //Всяко разно опущено Listener listener = null; public Form1() { listener.ConnectNotification += new EventHandler(listener_conEvent); //Dcon = new DConnect(listener_conEvent); //listener.conEvent += Dcon; //listener.conEvent += new EventHandler(listener_conEvent); } void listener_conEvent(Object sender, EventArgs a) { textBox1.Text = "User connected to local server " + DateTime.Now.ToString(); } } Class1.cs [CODE=C#] public delegate void DMessage(String message); public delegate void DConnect(Object sender, EventArgs e); public class Listener : IDisposable { public event System.EventHandler ConnectNotification; TcpListener localServer = null; TcpClient client = null; Byte[] bytes = new Byte[256]; String data = null; Thread t = null; Boolean loop = true; Int32 listenPort = 11001; public event DMessage msgEvent; // И так пробовал public event DConnect conEvent; public DConnect disconEvent; protected virtual void OnConnect(System.EventArgs e) // Пример брал из openNETCF.Net - AdapterStatusMonitor.cs { if (ConnectNotification != null) { ConnectNotification(this, e); } } private void startServer() { localServer = new TcpListener(listenPort); localServer.Start(); while (loop) { try { client = localServer.AcceptTcpClient(); //conEvent(this,new EventArgs()); //conEvent.Invoke(this, new EventArgs()); OnConnect(new EventArgs());// так же как в openNETCF в AdapterStatusMonitor.cs data = null; } catch(Exception) { Debug.WriteLine("catch: client = localServer.AcceptTcpClient();"); } NetworkStream stream = client.GetStream(); Int32 i; try { while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) { |