3_c#/Winform 4

C# Winform 크로스 스레드 해결

윈도우 GUI 프로그래밍의 기본 규칙 중 하나는 [컨트롤을 만든 스레드만 컨트롤의 내용에 접근하거나 수정할 수 있다.] Winform에서 폼은 메인 스레드에 의해 구동이 되고 있다. 이 원칙 하에 발생하는 에러가 크로스 스레딩이다. UI 작업하면서 많이 발생하는데, UI에 접근하려면 UI를 만든 스레드만이 접근해야한다. 다른 스레드가 접근하면 안된다는 것. 이 문제를 해결하기 위헤 invoke 함수 사용 Invoke (누구의 이름을)부르다 라는 뜻이다. 하나의 Form을 다른 스레드에서 접근하게 될 경우에 기존의 Form과 충돌이 날 수 있다. 이때 invoke 함수를 사용해서 실행하고자 하는 메소드의 대리자(델리게이트)를 실행한다. 델리게이트는 메소드를 참조하는 대리자이다. 약간 함수포인터 같은 느낌...

3_c#/Winform 2024.01.31

c# 계기판 컨트롤_레퍼런스

사용자 지정 컨트롤 만들어서 쓰는 편이 좋을 것 같고, 유튜브에 c# guage만 쳐도 많이 나온다. https://yaraba.tistory.com/169 C#에서 이미지 레이어 적용하기 포토샵이나 페인트닷넷과 같은 이미지 편집툴을 사용해본 사용자라면 레이어의 편리함과 유용성에 대해서 더이상의 설명이 필요없겠지만 레이어를 아직 경험하지 못한 사용자를 위하여 간단 yaraba.tistory.com https://cwkcw.tistory.com/146 Doridori C# 강의) 29.UserControl (사용자 정의 컨트롤) ======================================================안녕하세요 Doridori 입니다. 이번 강의는 UserControl(사용자 정의 ..

3_c#/Winform 2024.01.29

3 C#) Timer를 이용한 Sliding Menu 만들기

[Timer] :windows forms timer는 일정한 간격마다 이벤트를 발생시키는 구성 요소이다. 간격의 길이는 값이 밀리초 단위인 Interval 속성에 의해 정의된다. Tick이벤트가 Interval에 설정한 간격마다 발생한다. Timer의 주요 메서드는 start 및 stop이고, 이는 타이머를 켜고 끕니다. [사용법] 1.폼에 Timer를 추가 2. 타이머에대한 interval 설정 이 속성은 프로시저가 다시 실행되기까지 남은 시간을 결정한다. 3. Tick 이벤트에 적절한 코드를 작성한다 4.Enabled 속성을 true로 설정하여 타이머 시작한다. 5.적절한 시간에 Enabled 속성을 false로 설정하여 프로시저가 다시 실행되지 않도록 중지합니다. Interval을 0으로 해도 타이..

3_c#/Winform 2023.07.27