C#/Winform

· C#/Winform
이번 포스팅은 프로젝트를 진행하면서 적용한 내용에 대해 정리하였습니다. | 요청(문제) 상황 사용자가 특정 작업을 위해 Form을 열었고, 이 Form이 이미 실행 중일 때, 또 다른 Form을 여는 것이 아니라 기존의 Form을 활성화를 하고자 했습니다. 또한 Form 내의 데이터를 보여주는 DataGridView 컨트롤도 최선 정보로 업데이트되어야 했습니다. | 해결 방법 열려 있는 Form 확인 : Application.OpenForms 컬렉션을 사용하여 이미 열려 있는 Form 인스턴스를 찾음 Form 활성화 : Activate() 메서드를 사용하여 해당 Form을 사용자에게 보이게 합니다. From이 최소화되어 있다면, 먼저 정상 상태로 변경 DataGridView 최신화 : Form 내부의 D..
· C#/Winform
이번 포스팅은 C#에서 이미지의 픽셀의 RGB 값을 읽고 쓰는 방법에 대해 정리하였습니다. 라이브러리를 사용하지 않고 .Net Framework의 System.Drawing과 Bitmap 클래스 그리고 LockBits, BitmapData 클래스를 사용하여 RGB 데이터를 다루는 방법을 설명하였습니다. | GetPixel 먼저 GetPixel과 Setpixel 메서드로 특정 픽셀의 RGB 값을 읽는 방법을 알아보겠습니다. GetPixel 메서드를 사용하면 특정 위치의 픽셀 생상을 Color 객체로 가져올 수 있습니다. 이 객체에서 R, G, B 프로퍼티를 사용해 각 생상 요소의 값을 얻을 수 있습니다. 예제) GetPixel 메서드를 사용해 특정 픽셀의 RGB 값 읽기 Bitmap bmp = new Bi..
· C#/Winform
이번 포스팅은 Json 파일을 읽어 PropertyGrid에 적용하여 UI 상 나타내는 방법을 알아보겠습니다. | Json 파일 읽기 먼저 C#에서 Json 파일 읽는 방법을 알아보겠습니다. { "IP": "192.168.0.1", "Port": 20001, "EQ": [ { "Use": true, "EQNAME": "EQ1", "IP": "192.168.0.2", "Port": 20009, "WebPort": 20007, "BaseDir": "http://192.168.0.1:20001/" } ], "Mask": true, "Test": true, "Hold": true, "View": false } 위와 같은 Setup.json 이라는 Json 파일을 읽어보겠습니다. C#에서 Json을 처리하기 위해..
· C#/Winform
이번 포스팅은 크로스 스레드를 이해하고 해결하는 방법에 대해 정리하였습니다. | 크로스 스레드 (Cross Thread) 에러 프로젝트를 진행하다 보면 크로스 스레드 에러가 발생하는 것을 볼 수 있습니다. 크로스 스레드 에러는 멀티 스레드를 사용하면 자주 마주치는 문제로 한 스레드에서 생성한 컨트롤을 다른 스레드에서 접근하려고 할 때 발생합니다. 특히, UI를 사용하는 프로젝트에서 이 문제를 자주 볼 수 있습니다. 크로스 스레드 에러의 해결방법을 알기 전에 크로스 스레드가 무엇인지 알아보겠습니다. | 크로스 스레드 (Cross Thread) 이해 대부분의 UI 프레임워크는 스레드에 안전하지 않게 설계되었습니다. 이는 UI 컨트롤이 상태를 여러 개를 갖고 있으며, 여러 스레드가 이 상태를 동시에 변경하려고..
· C#/Winform
이번 포스팅은 C#의 Windows Forms 애플리케이션을 사용하면서 알게 된 방법에 대해 정리해 보았습니다. | Form의 존재 여부 확인 Form을 사용하면서 Form을 초기화하고 생성했을 때 Form이 생성 됐는지 안 됐는지 확인하는 방법을 알고 싶었습니다. 존재 여부에 따라 코딩을 하고 싶었고 Application 컬렉션에서 방법을 찾았습니다. | Application.OpenForms Application.OpenForms는 현재 실행 중인 애플리케이션에서 열린 모든 Form을 포함하는 컬렉션입니다. 이 컬렉션은 FormCollection 타입으로, Form이 열릴 때 추가되고 닫힐 때 제거 됩니다. | Application.OpenForms 활용 방법 1. 특정 Form의 존재 여부 확인 f..
· C#/Winform
이번 포스팅은 DataGridView의 Header Cell 높이 변경하는 방법에 대해 알아보겠습니다. | DataGridVeiw Header Cell 높이 변경 DataGridView Header Cell 높이 변경 하는 방법을 알려드리겠습니다. | ColumnHeadersHeight 속성 변경 비주얼 스튜디오의 컨트롤 속성 탭에서 변경할 수 있습니다 ColumnHadersHeight 속성의 값을 변경하면 Header Cell의 높이 변경이 되는 것을 확인할 수 있습니다. 코드로 속성 변경 dataGridView1.ColumnHeadersHeight = 100; 위 코드는 모든 열 헤더의 높이를 변경하는 방법이며 헤더의 높이를 100px로 설정합니다. 위 두 가지 방법 모두 같은 결과를 나타냅니다. 결..
· C#/Winform
이번 포스팅은 DataGridView에서 Column 높이를 변경하는 방법에 대해 알아보겠습니다. | DataGridView Coumn 높이 변경 방법 C#의 DataGridView의 Column의 높이라는 것은 위 그림을 말합니다. 기본적으로 DataGridView 컨트롤에서는 개별 Column의 높이를 조정하는 기능을 제공하지 않습니다. 예를 들어 위 그림에서 id Column의 높이를 조절하거나 특정 Cell 값 (예를 들어 Product 2)의 Column 높이를 조정하는 기능을 지원하지 않습니다. 이는 컨트롤의 기본적인 동작 방식과 관련이 있는데요. DataGridView는 행 기준으로 데이터를 표시하도록 설계되었기 때문입니다. 따라서 DataGridView 특정 열의 높이를 일괄적으로 변경하는..
· C#/Winform
이번 포스팅은 C#을 사용하면서 유용하게 사용할 수 있는 DataGridView 도구에 대해 설명하겠습니다. 유용한 만큼 기능도 많고 유연하게 사용할 수 있습니다. | DataGridView 이해 DataGridView는 데이터의 테이블 형태 표현을 위한 Windows Forms 컨트롤입니다. 이 컨트롤은 행, 열, 셀로 구성된 그리드 형태를 가지며 우리는 이를 통해 데이터를 표시, 편집, 정렬 등의 작업을 수행합니다. | DataGridView 구성 Columns (열) : 컨트롤의 열로 각 열은 특정 타입의 데이터를 표시 Rows (행) : 컨트롤의 행으로 각 행은 데이터의 단일 레코드를 표현 Cells (셀) : 컨트롤의 셀은 행과 열이 교차하는 지점에 위치하며 실제 데이터를 표시하는 데 사용 - ..
우준세
'C#/Winform' 카테고리의 글 목록