반응형

개발 114

C# <이벤트> 통신(Uart,CAN 등) 에서 실시간 값전달

Form1.cs private Initial() { Manager = new Manager(); Manager.RXMsgEvent += ReadCANMEssage; // event 생성 } private void ReadCANMEssage(object sender, TPCANMsgFD e) // 이벤트 발생시 처리할 함수 { if (InvokeRequired) { Invoke(new EventHandler(ReadCANMEssage), sender, e); } else { if(e.ID == 0x18FF02EB) { MessageBox.Show("Test"); } } } CAN.cs public event EventHandler CANRxMsgEvent; // 이벤트 설정 private void Read..

개발/C# 2019.09.30

C# contextmenustrip Control 찾기

ContextmenuStrip 한개로 여러 Control Listview 나 Listbox 같은 곳에 공통적으로 사용하려고 할때 현재 컨트롤러를 알아야 할 필요가 없다. 모르면.. 여러개를 만들어야 하니까. 그런 무식한 설계는 이제 그만 이럴때 sender 로 Toolstripitem 으로 as 한뒤 그것의 Owner를 찾으면 현재 어느 컨트롤에서 클릭하여 Contextmenustrip 이 사용되어 있는지 알수 있다.. 그것이 바로 아래 코드에서 sourceControl 이고 이것이 Listview 이면 as로 처리하면 된다.. ListView listview = null; ToolStripItem menuItem = sender as ToolStripItem; if (menuItem != null) {..

개발/C# 2019.07.12

C# 패널 스크롤바 키보드로 움직이기

Form 안에 패널이 있고 이 패널 안에 Picture 박스가 있다고 치자. 이 Picture 박스의 그림이 패널 보다 크면 스크롤이 생기는데 키보드를 이용해서 내리고 싶을때가 있다. 이럴때 아래 코드를 사용하면 된다. Form에서 Keydown 이벤트를 발생시키고 키다운 /업 에따라 처리하면 된다. private void Form1_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Down) { Point current = panel_command.AutoScrollPosition; Point scrolled = new Point(current.X, -current.Y + 50); panel_command.AutoScrollPosition =..

개발/C# 2019.07.09

C# 압축파일에서 압축풀지 않고 이미지 가져오기

dotnetzip 사용시 아래처럼 하면 압축을 풀지 않고 이미지를 가지고 올수 있음.. ㅎㅎㅎㅎ using (ZipFile zip = ZipFile.Read(filepath")) { foreach (ZipEntry e1 in zip) { CrcCalculatorStream reader = e1.OpenReader(); MemoryStream memstream = new MemoryStream(); reader.CopyTo(memstream); byte[] bytes = memstream.ToArray(); Image img1 = Image.FromStream(memstream); pictureBox1.Image = img1; } }

개발/C# 2019.04.29
반응형