내 프로그램에 도움이 필요합니다. 그래서 나는 com 포트 연결 (gps 장치)을 가지고 있고 프로그램이 시작될 때 gps eventhandler가 triggerd가 될 때까지 Form2를 보여줄 수 있기를 원합니다. 그리고 장치가 내게 데이터를 보내기 시작하면, 장치가 데이터를 제공하지 못할 때가 있습니다. Form2를 다시 보여줘야한다는 것을 어떻게 알 수 있습니까?이벤트를 기다리는 동안 하나의 양식 화면을 표시하는 방법
설명이 약간 복잡합니다.
여기까지 제가 한 것입니다. Form1이로드 될 때 Form2 화면을 보여 주므로 기본적으로 신호가 표시 될 때까지 기다리는 중입니다. 이제 어떻게하면 일종의 루프 또는 이와 유사한 이벤트 처리기가 항상 트리거되는지 확인할 수있는 방법을 넣을 수 있습니다.이 경우 form2를 표시합니다.
자세한 설명이 필요하면 알려주세요.
private void Form1_Load(object sender, EventArgs e)
{
//open the com port when loading form
comport.Open();
Form2 my_form2 = new Form2();
my_form2.ShowDialog();
}
이 GPS 신호에 대한 이벤트 핸들러 : 그래서 여기
코드입니다
GPS.PositionReceived += new NmeaInterpreter.PositionReceivedEventHandler(GPS_PositionReceived);
는 그리고 이것은 GPS 기능입니다 :
private void GPS_PositionReceived(string Lat, string Lon)
{
arrLon = Lon.Split(new char[] { '°', '"' }, StringSplitOptions.RemoveEmptyEntries);
dblLon = double.Parse(arrLon[0]) + double.Parse(arrLon[1], new System.Globalization.NumberFormatInfo())/60;
deciLon = arrLon[2] == "E" ? dblLon : -dblLon;
//some more code
}
이벤트 처리기가 트리거 할 때 양식을 닫지 않는 이유는 무엇입니까? 그것이 그들의 전체 목적입니다. 뭔가가 발생하면 코드가 실행됩니다. 상태 변경을 기다리는 무한 루프가있는 것은 나쁜 생각입니다. – Doomsknight
@Doomsknight 및 트리거하지 않을 때 다시 표시하는 방법. 예를 들어 차가 터널 신호로 들어갔다가 손실되었지만 신호가 없다고 말하는 form2를 활성화해야합니다. –
@Doomsknight 어쩌면 이벤트가 몇 초 동안 트리거되지 않았는지 확인할 수 있습니까? –