반응형

DataGridView Cell 선택 해제

DataGridView를 생성하고 Row, Column을 초기화하여 만들어 놓으면 cell 이 선택되어 있다.

 

 

표를 보여줄 용도로만 쓸 것이기에 이 선택된 cell 을 없앨려고 한다.

 

아래의 코드를 써 주면 된다. 현재 선택셀을 null 로 지정.

dataGridViewResult.CurrentCell = null;  // No cell select
// Control name : dataGridViewResult

 

위 이미지와 같이 선택된 셀이 없이 DataGridView가 생성되었다.

 

 

 

 

 

 

 

728x90
반응형
반응형

DataGridView Row Header indicator remove & index 추가

 

행과 열의 header 크기를 같이 맞추려고 해도 Row indicator (화살표)가 있어서 

행 header의 크기를 항상 커진다. 

Row indicator가 필요없어 아래의 코드를 적용하여 제거하였다.

 

private void dataGridViewNormal_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
	e.PaintCells(e.ClipBounds, DataGridViewPaintParts.All);
	e.PaintHeader(DataGridViewPaintParts.Background | DataGridViewPaintParts.Border | DataGridViewPaintParts.Focus | DataGridViewPaintParts.SelectionBackground);
	e.Handled = true;

	using (SolidBrush b = new SolidBrush(dataGridViewNormal.RowHeadersDefaultCellStyle.ForeColor))
	{
		e.Graphics.DrawString((e.RowIndex + 1).ToString(), e.InheritedRowStyle.Font, b, e.RowBounds.Location.X + 10, e.RowBounds.Location.Y + 4);
	}
}
// dataGridViewNormal 이라 이름 지은 control 의 RowPrePaint 이벤트

 

using 내부는 열 header에 index를 추가하는 코드.

 

위 이미지와 같이 표시된다.

 

 

 

 

 

728x90
반응형
반응형

DataGridView column header color 변경. (열 헤더 색상 변경)

 

dataGridViewNormal.EnableHeadersVisualStyles = false;
dataGridViewNormal.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray;

// dataGridViewNormal은 control name

 

밝은 회색으로 변경하는 코드.

 

 

위 이미지와 같은 색상이 된다.

 

 

 

 

728x90
반응형
반응형

DataGridView 열 정렬 기능 해제

 

DataGridView의 header 열을 클릭하면 정렬이 되어 버린다. 이것을 해제하는 방법.

 

foreach (DataGridViewColumn column in dataGridViewNormal.Columns)
{
	column.SortMode = DataGridViewColumnSortMode.NotSortable;
}

// dataGridViewNormal은 control name

 

Form load event에 넣어 주었다.

 

 

위와 같이 column header가 클릭안 되게 된다.

 

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

unsafe code (안정하지 않은 코드)

아래와 같은 예제 코드를 작성하던 중 나오는 메시지 unsafe

 

 

CS0227 : 안전하지 않은 코드는 /unsafe 사용하여 컴파일 하는 경우만 나타날 있습니다.

 

이 메시지가 나오지 않게 하기 위해서는 프로젝트 속성 >> 빌드 >> 일반 >> 안전하지 않은 코드 허용 을 체크 한다.

 

 

unsafe 에 대한 자세한 내용은 다음에 알아봐야지...

 

개발환경) Visual studio 2019

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

Visual studio 2019 form 디자인 사용 중 나타나는 메시지

"주 디스플레이의 크기가 125%로 설정되어 있습니다."

 

 

그냥 편집을 하니 form 이 이상하게 나오는 경우가 있어서

100% 크기 조정으로 Visual studio 다시 시작을 매번 하고 있었다.

 

 

이것 안 나오게 하는 방법.

https://docs.microsoft.com/en-us/visualstudio/designers/disable-dpi-awareness?view=vs-2019 

 

Disable DPI-awareness in Visual Studio - Visual Studio (Windows)

Discusses the limitations of Windows Forms Designer on HDPI monitors and how to run Visual Studio as a DPI-unaware process.

docs.microsoft.com

 

아래와 같이 3가지 옵션이 있다.

 

 

그냥 편하게 3번째 옵션. 디스플레이 옵션을 100%로 했다. ^^

 

 

배율 및 레이아웃 >> 텍스트, 앱 및 기타 항목의 크기 변경 >> 100% 설정.

 

 

이제 정상적으로 form이 표시된다.

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

환경) Visual Studio 2019

Visual Studio C# 도구상자 표시

 

Visual Studio C#을 사용하다가 보면 갑자기 도구상자가 안 보일 때가 있다.

실수로 닫아 버렸는지... ㅡ.ㅡ;

이럴 때 마다 어떻게 했었는지 매번 메뉴를 찾는다.

 

보기 - 도구상자 (Ctrl + Alt + X)

 

이 메뉴를 선택하면 된다.

 

 

아래 왼쪽 이미지에서 사라져 버린 도구상자가 오른쪽 이미지 처럼 나왔다.

 

 

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

소스를 긁어서 복사 붙이기 했더니... 역시나 빨간줄....

Thread 를 사용하려는데 어떻게 하는지 잊었다.

아래와 같은 코드를 사용하려면...

 

new Thread(new ThreadStart(DoRoutine)).Start(); // 쓰레드 정의

 

using System.Threading;

 

를 사용해야 한다.

즉, Thread 를 사용하려면 System.Threading Namespace 를 써야 한다.

빨간줄이 나왔다고 당황하지 말고 써 주자.

 

System.Threading Namespace에 대한 내용은 아래 링크 참고.

 

docs.microsoft.com/en-us/dotnet/api/system.threading?view=net-5.0

 

System.Threading Namespace

Provides classes and interfaces that enable multithreaded programming. In addition to classes for synchronizing thread activities and access to data (Mutex, Monitor, Interlocked, AutoResetEvent, and so on), this namespace includes a ThreadPool class that a

docs.microsoft.com

Provides classes and interfaces that enable multithreaded programming.

이라고 되어 있다. 

Thread외에 멀티쓰레드 프로그래밍을 사용하는 인터페이스와 클래스를 제공한다. 

 

Thread Class는 아래 링크 참조.

 

docs.microsoft.com/en-us/dotnet/api/system.threading.thread?view=net-5.0

 

Thread Class (System.Threading)

Creates and controls a thread, sets its priority, and gets its status.

docs.microsoft.com

예제 소스도 잘 나와 있으니 참고하자!

 

 

 

 

 

728x90
반응형

+ Recent posts