WinForm

Study/C#, Winform

[C#, Winform] Cross Thread(UI Thread) 처리, InvokeRequired

C#을 사용하여 GUI를 Visual Studio를 사용하여 구성하는 방법에는 크게 Winform(윈폼)과 WPF 두가지가 존재합니다. WPF는 Dispatcher Checker를 사용하여 UI Thread가 아닌 다른 Thread를 판단한다면Winform의 경우에는 InvokeRequired를 사용하여 UI Thread가 아닌 다른 Thread에서 접근하려고 하는지 판단합니다. InvokeRequired해당 Property는 System.Windows.Forms.Control에 정의된 Property로, 해당 컨트롤이 UI Thread 이외의 Thread에서 컨트롤에 접근하려고 할 때 Invoke 혹은 BeginInvoke를 사용해야하는지 유무를 반환하는 Property입니다.즉, UI Thread 이..

Study/C#, Winform

[C# Winform] PropertyGrid 에서 DisplayName 우선순위

class PropData { [Category("Cell Information")] [DisplayName("Width")] public int Width { get; set; } = 0; [Category("Cell Information")] [DisplayName("Height")] public int Height { get; set; } = 0; [Category("Cell Information")] [DisplayName("Target X")] public double TargetX { get; set; } = 0.0; [Category("Cell Information")] [DisplayName("Target Y")] public double TargetY { get; set; } = 0.0;..

Study/C#, Winform

[C# Winform] DataGridView Column Header Drag (컬럼 헤더 드래그)

Winform 에서 데이터를 표로 나타낼때 주로 DataGridView를 사용합니다. 여기서 Column의 Header를 Drag 할 수 있게 하는 옵션이 존재합니다. dataGridView1.AllowUserToOrderColumns = true; 바로 AllowUserToOrderColumns 라는 옵션입니다. 이렇게 UI 컨트롤 속성에서도 제공하고 있는 옵션입니다. 이 옵션이 true인 경우 사용자가 Column의 Header를 Click한 채로 Drag하면 해당 Column이 옮겨집니다. public partial class Form1 : Form { public Form1() { InitializeComponent(); // DataGridView의 Name은 dataGridView1 dataG..

Study/C#, Winform

[C# Winform] 스크롤바 크기 (넓이)

스크롤바 크기를 구하는 법은 다음과 같다. // 세로 스크롤바의 가로 넓이 int nVerticalWidth = System.Windows.Forms.SystemInformation.VerticalScrollBarWidth; // 가로 스크롤바의 세로 넓이 int nHorizontalWidth = System.Windows.Forms.SystemInformation.HorizontalScrollBarHeight;

Study/C#, Winform

[C# Winform] Context Menu를 Button 옆에 띄우기

Context Menu라는 것이 있습니다. 이런 메뉴를 Context Menu라고 합니다. 이 Context Menu를 버튼 옆에 띄워봅시다. 버튼을 하나 생성하고 이름(Name)은 btnTest라고 했습니다. 그리고 일반 Context Menu가 아닌 Context Menu Strip을 사용하겠습니다. 버튼을 더블 클릭하여 버튼 클릭 이벤트를 하나 만들어봅니다. private void btnTest_Click(object sender, EventArgs e) { // Context Menu Strip 생성 ContextMenuStrip contextMenuStrip = new ContextMenuStrip(); // 메뉴 아이템 1 ToolStripMenuItem menuItem = new ToolSt..

Eskeptor
'WinForm' 태그의 글 목록