본문 바로가기

프로그래밍/C# (WinForms)42

C#, WinForms ] textBox박스의 focus 없애기/주기 focus 없애는 방법 Properties - TabStop False로 설정 또는 Form Load 시 this.ActiveControl = null; focus 주는 방법 Form Load 시 this.ActiveControl = textBox1; 또는 textBox1.Focus(); 2023. 2. 21.
C#, WinForms ] 문자열 앞에 (심벌)@사용 @ 심벌을 문자열 앞에 사용하면, 해당 문자열 안의 Escape 문자를 무시하고 문자 그대로 인식하도록 한다. 예를 들어, Backslash를 한번 지정하면 이는 Escape문자로 인식되기 때문에 2개의 Backslash를 사용하게 되는데, @ 심벌을 문자열 시작 부호전에 사용하면, Backslash를 그대로 Backslash로 인식하게 한다. 예시1. string filename = "C:\\Temp\\1.txt"; string filename = @"C:\Temp\1.txt"; 예시2. this.textBox1.Text = duration.ToString(@"hh\:mm\:ss\.fff"); this.textBox1.Text = duration.ToString("hh\\:mm\\:ss\\.fff");.. 2023. 2. 21.
DateTime 문자열 서식지정자 주의 : 날짜 및 시간 형식은 Locale 설정에 따라 달라질 수 있다. https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings Custom date and time format strings Learn to use custom date and time format strings to convert DateTime or DateTimeOffset values into text representations, or to parse strings for dates & times. learn.microsoft.com Format specifier Description Examples "d" Th.. 2023. 2. 21.
C#, WinForms ] 스탑워치, Stopwatch 클래스, DateTime 구조체, Timer 활용 using System.Diagnostics; //... private Stopwatch stopwatch = new Stopwatch(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // textBox 초기값 this.textBox2.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); this.textBox2.Text = ""; } private void button1_Click(object sender, EventArgs e) { // Stopwatch, Timer 스타트 stopwatch.Start(); this.timer1.St.. 2023. 2. 20.
.NET Framework, .NET, Windows Forms 란 .NET 이란? .NET은 Linux, macOS, Windows, iOS, Android 등을 다양한 유형의 애플리케이션을 구축하기 위해 Microsoft에서 만든 오픈 소스 개발자 플랫폼이다. .NET Framework와 달리 Windows 프로그램 개발에 한정되지 않고 크로스 플랫폼 개발을 지원한다. .NET Framework 란? .NET Framework는 Windows에서 애플리케이션을 빌드하고 실행하기 위한 소프트웨어 개발 프레임워크이다. ❗ .NET Framework의 릴리즈 중단과 .NET으로의 통합 .NET Framework는 4.8이 마지막 버전이며 더이상의 릴리즈는 없다. 이미 .NET Framework 4.x 일부 버전은 지원이 중단된 상태이다. 이후 .NET Framework는 .. 2023. 2. 3.
WinForms ] GroupBox, Panel, TabControl 속성 GroupBox 컨트롤의 그룹으로 GroupBox를 생성 후 드래그앤드랍으로 원하는 컨트롤을 GroupBox 안에 위치시키면 된다. GroupBox 안에있는 컨트롤들의 속성을 각각 변경할 수 있지만 예를들어 GroupBox의 ForeColor를 red 로 지정하면 안에있는 컨트롤들이 ForeColor를 상속받는다. Panel Panel 은 GroupBox와 유사하게 컨트롤을 그룹핑하는데 쓰인다. TabControl TabControl 은 많은 컨트롤을 적은 공간에 그룹핑하여 표시하는 데 유용하다. TabControl 안에 GroupBox 또는 Panel을 넣을 수 있다. 화살표버튼을 눌러 탭 추가/제거가 가능하다. 또한 페이지 안쪽을 클릭하면 TabPage 컨트롤의 속성을 설정할 수 있고 페이지 바깥쪽을.. 2023. 1. 31.
WinForms ] ProgressBar, PictureBox, NumericUpDown, TrackBar 속성 ProgressBar 사용자에게 진행 상황을 알려줄 수 있는 컨트롤이다. Maximum 과 Minimum 속성을 통해 상한과 하한을 설정할 수 있다. Value 속성으로 현재 값을 지정할 수 있다. Style 은 세 종류가 있는데 Blocks 와 Continuous 가 우리가 일반적으로 아는 Progress Bar이고 둘 은 윈도우10 이상에선 차이가 없는 듯 하다. Style에서 Marquee 를 선택하면 아래와 같은 애니매이션을 볼 수 있다. Marquee 같은 경우 속성에서 속도도 설정 가능하다. PictureBox 컨트롤을 추가하고 화살표를 눌러 이미지를 선택한다. 크기 모드에서 Normal / StretchImage / AutoSize / CenterImage / Zoom 중 하나를 선택할 수 .. 2023. 1. 29.
C#, WinForms ] PictureBox 위의 Label 배경색 투명하게 설정하기 디자이너에서 단순히 label의 BackColor를 Transparent 로 지정되도 투명하게 오버레이되지 않는다. 방법은 label 의 Parent 속성을 label 뒤에 있는 컨트롤로 변경해주는 것이다. label1.Parent = pictureBox1; label1.BackColor = Color.Transparent; 단, label을 생성하면 디폴트 Parent 속성이 Form 인데 PictureBox로 바꾸었으니 Location 위치도 바꾸어 주어야 한다. (0, 0)이 PictureBox의 좌상단이다. 2023. 1. 29.
WinForms ] 체크박스, 라디오버튼 속성 Text AutoSize 이 값을 False로 하면 체크박스의 크기를 조절할 수 있다. 그리고 컨트롤의 CheckAlign / TextAlign 을 제대로 사용하기 위해 이 값이 False로 되어있어야 한다. CheckAlign Checked & CheckState True로하면 체크박스의 초기값을 체크된 상태로 할 수 있다. CheckState의 Interminate 은 ThreeState를 사용하는 것으로 사용자가 아무런 클릭을 하지 않았을 때의 상태를 말하는 것인데, 그냥 Checked or Unchecked 의 TwoState를 사용하는 것이 낫다. Cursor Enabled Appearance 확인란의 모양을 버튼모양으로 바꿀 수 있다. Image ImageAlign TextAlign Font .. 2023. 1. 16.
WinForms ] 콤보박스, 리스트박스 속성 아이템 추가 DropDownStyle DropDown : 사용자가 커서를 두고 직접 입력할 수 있으며, 옵션을 선택할 수도 있다. DropDownList : 사용자가 입력할 수 없고, 아이템을 선택할 수만 있다. Simple의 경우 아래처럼 콤보박스의 길이를 늘려 아이템이 다 보이게끔 할 수 있다. DropDownHeight 드롭다운의 픽셀 단위 높이이다. 예를들어 기본값에서 50픽셀로 줄이면 아래와 같이 표현된다. Sorted 이 값을 True로하면 콤보박스의 항목인 문자열을 알파벳 순으로 정렬할 수 있다. 한번 정렬를 하고나면 Sorted를 다시 False로 바꿔도 정렬된 순서가 그대로 남는다. ListBox 는 드롭다운이 없는 콤보박스와 같다. 2023. 1. 15.
Windows Forms 시작하기 - 컨트롤의 주요 속성 도구상자 - 모든 Windows Forms - Button 생성 Iconfinder 사이트에서 이미지를 찾고 버튼 우클릭 - 속성을 누른뒤 해당 이미지를 추가한다. More sizes 를 누르면 더 다양한 px 이미지를 다운받을 수 있다. Image Image 밑의 ImageAlign을 눌러 버튼에서 이미지를 위치시킬 곳을 선택할 수 있다. Text Text 를 입력하고 TextAlign 도 선택한다. Font Font 를 굵게 설정하였다. Cursor Form 의 기본 커서는 Arrow 인데 버튼의 커서는 hand로 설정해준다. 버튼에 커서를 올렸을 때만 hand 모양으로 바뀌는 것을 볼 수 있다. Visible False 로 설정하면 사용자가 해당 버튼을 볼 수 없다. Enable False 로 설정.. 2023. 1. 7.
Windows forms 시작하기 - form 속성 새 프로젝트 만들기 - Windows Forms 앱(.NET Framework) 선택 .NET Framework 버전을 선택하고 프로젝트를 생성한다. 보기 - 도구상자 .cs 파일 오른쪽 클릭 - 속성 위의 화면에서 Form 또는 컨트롤을 더블클릭하면 아래와 같이 코딩을 할 수 있는 화면이 나오는데 여기서 또 다시 우클릭 - 디자이너 보기를 선택하면 전의 화면으로 돌아갈 수 있다. 프로젝트의 구조는 아래와 같다. .Designer.cs 파일은 Form에 컨트롤을 추가하거나 수정하면 코드가 자동생성되는 파일이고 그 밑의 .resx 파일은 문자열, 이미지, 개체 데이터가 포함된 리소스 파일이다. 속성 뷰에서는 비슷한 카테고리끼리 그룹핑된 항목별 나열 방식으로 볼 수 도 있고, 알파벳 순으로 볼 수도 있다. .. 2023. 1. 7.