witam pisze aplikacyjke z polaczeniem serial portu czytnika kart
program dziala wykrywa czytnik itp
mam 2 formartki zrobilem nasluch na metodzie datareceived
o ile na pierwszwj formatce dziala nasluch i przechwytuje dane z czytnika
to na drugiej formie juz to nie dziala,jak to zrobic by dzialalo
przechodzac z 1 na 2 ,zdejmuje z handlera , i dodaje na handler na drugiej formie.
Efektu nie widze,Pomozecie?
pokaż kod, bo to co piszesz jest mało zrozumiałe
kult napisał(a):
pokaż kod, bo to co piszesz jest mało zrozumiałe
class SerialPortEvent
{
private SerialPort mySerialPort;
public Action string DataReceived;
//Created the actual serial port in the constructor here,
//as it makes more sense than having the caller need to do it.
//you'll also need access to it in the event handler to read the data
public SerialPortEvent()
{
mySerialPort = new SerialPort("COM81");
mySerialPort.DataReceived += mySerialPort_DataReceived
myserialPort.open();
}
public void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
//no. of data at the port
string mes= mySerialPort.readto("/r");
var copy = DataReceived;
if(copy != null) copy(mes);
}
catch (SystemException ex)
{
MessageBox.Show(ex.Message, "Data Received Event");
}
}
}
public Form1()
{
SerialPortEvent serialPortEvent = new SerialPortEvent();
serialPortEvent.DataReceived += ProcessData;
}
private void ProcessData(byte[] data)
{
//TODO do stuff with data
}
public Form2()
{
SerialPortEvent serialPortEvent = new SerialPortEvent();
serialPortEvent.DataReceived += ProcessData;
}
private void ProcessData(byte[] data)
{
//TODO do stuff with data
}
na formie2 juz nie dziala,nie wiem czemu.
kod zaciagenty z netu dlatego nawet komentarzy nie zmienialem,jedynie co zmienilem to w oryginale zmienna Action byla typu byte[] natomiast ja zmienilem na string,i na form1 dziala przekazywanie bez zarzutu,problem jest jak przejde na form2,uzywam prisma i wpfa