닷넷/WinForms
-
C# WinForms DevExpress GridControl에서 셀 편집(SetRowCellValue)이 되지 않을 때, 체크가 안 될 때 등닷넷/WinForms 2021. 6. 14. 16:53
DataGridView 대신에 데브익스프레스에서 제공해주는 GridControl를 사용하면 편리한 점이 많아 사용하고 있다. 그런데 하나의 칼럼을 RepositoryItemCheckEdit으로 설정해 두었는데 체크하려고 클릭하면 작동을 하지 않고, 아래의 코드처럼 SetRowCellValue도 먹지 않는다. private void CheckAll() { GridColumn selectColumn = this.gridView1.Columns.ColumnByName("cSelect"); for (int i = 0; i < this.gridView1.DataRowCount; i++) { this.gridView1.SetRowCellValue(i, selectColumn, true); } } 한참을 헤맨 것 같..
-
C# 폼에서 제목표시줄을 클릭했을 때 클릭이벤트가 발생되게 하는 방법닷넷/WinForms 2021. 5. 13. 18:12
Form에서 Click 이벤트든 Mouse 이벤트든 폼을 클릭했을 때 제목표시줄을 클릭하는 건 반응을 안 한다. 다음 코드를 추가하면 폼에서 제목표시줄을 클릭했을 때의 상황을 코딩할 수 있다. const int WM_NCLBUTTONDOWN = 0x00A1; protected override void WndProc(ref Message m) { base.WndProc(ref m); // no client area if (m.Msg == WM_NCLBUTTONDOWN) { //select tittle area only If (){ this.Cursor = new Cursor(Cursor.Current.Handle); MessageBox.Show("Click"); //} } } 참고로 이 코드는 제목표시줄을..
-
C# 윈폼에서 배경 불투명도 조절하기 WinForms Opacity닷넷/WinForms 2020. 9. 30. 01:22
C#에서 윈폼에서 원하는 부분을 투명하게 하는 방법에 대해 예전에 포스팅했었다. 2016/07/19 - [프로그래밍/C#] - C# WindowsForm에서 배경 투명하게 하는 방법 C# WindowsForm에서 배경 투명하게 하는 방법 WindowsForm의 특정부분만 투명하게 하는 방법은 폼 속성의 TransparencyKey을 이용하면 된다. 예를 들어 FormBorderStyle을 None으로 하고 배경이미지를 넣었을 경우에 아래와 같이 이미지 외의 배경이 폼색 jasmintime.com 이 방법은 투명하게만 만들 수 있는 방법이어서 반투명 혹은 투명도를 세밀하게 조절할 때 이 방법은 옳지 않다. 윈폼이나 컨트롤의 배경을 투명하게만 하는 것이 아니라 불투명도를 세밀하게 조절하는 방법은 다음과 같다..
-
C# WinForms Datagridview Paging, 데이타그리드뷰에서 데이터를 페이지로 나누기닷넷/WinForms 2019. 5. 3. 11:29
티스토리 에디터가 바뀌면서 Color Scripter에서 복사한 게 이상하게 붙여진다. 다행이도 주소로 공유할 수 있어서 코드는 아래 주소를 통해 공유한다. Form1.Designer.cs(디자인): http://colorscripter.com/s/dpYT9Qb 공유된 코드 - Color Scripter 코드 설명 : [Form designer cs]How to paging with datagridview in c# colorscripter.com Form1.cs(코드): http://colorscripter.com/s/VyVn5TH 공유된 코드 - Color Scripter 코드 설명 : How to paging with datagridview in c# colorscripter.com 프로그램 실행 영상
-
C# ReportViewer pagesettings source닷넷/WinForms 2019. 4. 24. 11:08
System.Drawing.Printing.PageSettings pg = new System.Drawing.Printing.PageSettings(); pg.Margins.Top = 0; // 위쪽 마진 (in/100) pg.Margins.Bottom = 0; // 아래쪽 마진 (in/100) pg.Margins.Left = 0; // 왼쪽 마진 (in/100) pg.Margins.Right = 0; // 오른쪽 마진 (in/100) pg.PaperSize = size; reportViewer1.SetPageSettings(pg); // reportViewer1 페이지 설정 reportViewer1.RefreshReport(); 참고로 프로그램을 실행하여 리포트뷰어에 있는 페이지 설정을 눌렀을 때 나오..
-
C# DataGridView 편집, 추가, 삭제, 열 다시 정렬닷넷/WinForms 2019. 4. 21. 09:04
// 편집 불가능(읽기) dataGridView1.ReadOnly = true; // 편집 가능(읽기, 쓰기) dataGridView1.ReadOnly = false; // 추가 O dataGridView1.AllowUserToAddRows = true; // 추가 X dataGridView1.AllowUserToAddRows = false; // 삭제 O dataGridView1.AllowUserToDeleteRows = true; // 삭제 X dataGridView1.AllowUserToDeleteRows = false; // 열 다시 정렬 O dataGridView1.AllowUserToOrderColumns = true; // 열 다시 정렬 X dataGridView1.AllowUserToOrd..
-
C# How to export data direct from reportviewer to excel.닷넷/WinForms 2019. 4. 19. 12:15
private void btnExcel_Click(object sender, EventArgs e) { Warning[] warnings; string[] streamids; string mimeType; string encoding; string extension; byte[] bytes = reportViewer1.LocalReport.Render( "Excel", null, out mimeType, out encoding, out extension, out streamids, out warnings); SaveFileDialog save = new SaveFileDialog(); save.Filter = "Excel File (*.xls)|*.xls|All Files (*.*)|*.*"; save...
-
C# 데이터그리드뷰 CSV 파일로 저장하기닷넷/WinForms 2019. 4. 14. 21:14
private void Save_Csv(string fileName, DataGridView dgv, bool header) { string delimiter = "`"; // 구분자 FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write); StreamWriter csvExport = new StreamWriter(fs, System.Text.Encoding.UTF8); if (dgv.Rows.Count == 0) return; // 헤더정보 출력 if (header) { for (int i = 0; i
-
C# TextBox의 MultiLine을 사용할 때 라인(줄) 수 구하기닷넷/WinForms 2019. 4. 9. 15:06
// 디자인에서 멀티라인체크가 보이지 않을 때 코딩으로 멀티라인 설정하기 textBox1.Multiline = true; // 멀티라인 사용 textBox1.Multiline = false; // 멀티라인 사용하지 않음 (=싱글라인) // textBox1의 라인 수 int LineCount = textBox1.Lines.Length; // 활용예제 https://jihye-yoo.tistory.com/35 매일프로그래밍 - 코딩테스트 문제 32 문제 이진 트리가 주어지면 루트 노드부터 레벨별로 프린트 하시오. 프린트 방식은 홀수 레벨은 왼쪽에서 오른쪽으로, 짝수 레벨은 오른쪽에서 왼쪽으로 프린트 하시오. 루트노드는 레벨 1입니 jihye-yoo.tistory.com
-
C# 숫자만 입력되게 하는 방법들닷넷/WinForms 2019. 4. 5. 08:54
금액이나 수량이 입력되는 텍스트박스를 만들 때 숫자가 아닌 것이 입력될 경우 계산에 오류를 주는 등 치명적인 오류가 발생할 수 있다. 그러므로 아예 입력될 때부터 숫자만 입력되게 할 수 있는 방법들에 대해 정리해 보았다. 1) KeyPress 이벤트에서 핸들링 [: 한글 입력은 ProcessKey이기 때문에 KeyPress 이벤트로는 한글 입력을 막지 못한다. 아래 방법 중 한가지를 같이 쓰던가 해야할 것이다.] private void txtPrepay_KeyPress(object sender, KeyPressEventArgs e) { // 숫자와 백스페이스만 입력가능 if (!(char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) { ..
-
C# 윈폼을 단순하지만 예쁜 디자인으로 탈바꿈 해주는 메트로폼 feat.Visual Studio에서 Metro UI Framework 추가하기닷넷/WinForms 2019. 3. 4. 14:37
비주얼 스튜디오에서 기본적인 C# 윈도우폼을 만들면 아래와 같이 회색풀하다. =예쁘지가 않다. 이런 윈폼을 예쁘게 꾸미기 위해 여러 아이콘과 이미지를 구해 꾸미곤 했는데 그러다 보면 코딩은 기본이고 거기에 원하는 이미지를 찾거나 만들어 배치하느라 시간이 배로 들었다. 혹은 라이센스를 구매해서 데브나 텔레릭 등의 UI를 사용해야 한다. (회사가.....) 윈폼대신 무료이거나 비용이 적으면서 쉽게 구성할 수 있는 쓸만한게 어디 없을까? 세상에 Windows 운영체제가 버전이 올라가면서 특히 윈도우 앱을 위해 발전한 Metro 디자인이 있었다. 위에 윈폼을 메트로폼으로 바꾸면 아래와 같은 화면으로 바뀐다. =단순하지만 예쁘다. 자 그럼 이것을 어떻게 적용할까? 1. 첫 번째: MetroFramework 설치하..
-
C# DataGridView 추가행에 기본값 설정하기 (DefaultValuesNeeded 이벤트)닷넷/WinForms 2018. 12. 10. 14:43
// DataGridView 이벤트 중에 DefaultValuesNeeded를 이용한다.private void dataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e){ // 이벤트로 넘어 온 DataGridView Row의 칼럼에 값을 넣는다. e.Row.Cells["Name"].Value = value; // 예제 코드 e.Row.Cells["City"].Value = "Seoul"; e.Row.Cells["Country"].Value = "Korea";}Colored by Color Scriptercs 테스트 영상 행이 추가될 때 DefaultValuesNeeded 이벤트에 입력한 기본값이 바로 적용되지 않는다.영상을 ..
-
C# [펌] 윈도우 Timer와 스레드 Timer의 차이점 및 사용할 때 주의할 점닷넷/WinForms 2018. 10. 1. 11:55
[출처: http://ccambo.blogspot.com/2013/03/c-timer.html] C# 에서 Timer 사용할 때 주의할 점. 예전에 알고 지내시던 분의 질문을 받았다. Windows Forms 개발을 하는데, 주기적 (대략 1분)으로 데이터 요청을 하는 프로그램을 작성하기 위해서 Timer 를 사용하는데, 어떤 기능을 처리해야 하기 때문에 Sleep 을 같이 사용했다고 한다. 여기서 발생하는 문제는 Sleep 5초를 주었더니, Timer 까지 5초 동안 멈춘다는 것이다. Timer 라는 것은 기본적으로 시간의 흐름을 측정하는 기능이기 때문에 Sleep 을 했다고 해서 Timer 가 멈추는 일은 생겨서는 안된다. 그러나 실제 샘플을 만들어 보면 ... Timer 가 Sleep 만큼 동작이 ..
-
C# MDI폼의 자식폼 최대화시 메뉴바에 나타나는 아이콘 없애기닷넷/WinForms 2018. 8. 20. 18:01
C#에서 하나의 메인폼을 MDI 폼으로 만들어 부모폼으로 만들고, (부모폼에는 메뉴바가 있다.)여러 개의 폼을 자식폼으로 해서 창크기를 최대화로 하면메뉴바에 아이콘이 생긴다. 이 아이콘이 내가 설정한 거로 안 나오고, C# 윈폼 기본 아이콘으로 나오니까 보기가 싫다.고객사 납품용인데 프로그램이 없어보인다. 흐규흐규 그래서 찾아낸 방법!!!! 폼 속성창에서 ControlBox를 True에서 False로 하니까 잘 된다. 메뉴바에 자식폼 아이콘이 사라졌다. 오오