Liea
'① 공부/C#' 카테고리의 글 목록

① 공부/C#

① 공부/C#

윈도우폼 버튼 눌림효과 넣는 방법

버튼 눌림 효과를 넣기 위해서는 FlatStyle값에 Flat을 하면 안됩니다. 눌림 효과는 Popup을 사용 권장 FlatApprearance에 속성값을 넣어줘야 합니다.

① 공부/C#

윈도우폼 button 테두리(border) 없애기

첫번째 방법: Properties 창의 값 변경 (1) Properties > FlatAppearance - BorderSize값을 0으로 두번째 방법: 소스코드 수정 //버튼 테두리 없애기 btnLogin.TabStop = false; btnLogin.FlatStyle = FlatStyle.Flat; btnLogin.FlatAppearance.BorderSize = 0;

① 공부/C#

윈도우폼 종료하기 (ESC입력, 프로그램 상단 X버튼, 생성한 버튼 클릭)

ESC입력 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { //esc 입력시 if (keyData == Keys.Escape) { this.Close(); return true; } return base.ProcessCmdKey(ref msg, keyData); } 프로그램 상단 X버튼 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { //X 버튼 클릭시 if (DialogResult.Yes != MessageBox.Show( "정말 종료하시겠습니까?", //내용 "프로그램 종료", //제목 MessageBoxButtons.YesNo,//버튼 종류 ..

① 공부/C#

예외

1. 예외(Exception) - 실행시간에 발생하는 에러(Run-Time Error)로서 프로그램의 비정상적인 종료, 잘못된 실행결과, 메소드의 호출과 실행, 부정확한 데이터, 그리고 시스템 에러 등 다양한 상황에 의해 야기 - 시스템 정의 예외(System-Defined Exception) : 프로그램의 부당한 실행으로 인해 시스템에 의해 묵시적으로 일어나는 예외 ArithmeticException 산술 연산 시 발생하는 예외 IndexOutOfRangeException 배열, 스트링, 벡터 등과 같이 인덱스를 사용하는 객체에서 인덱스의 범위가 벗어날 때 발생하는 예외 ArrayTypeMismatchException 배열의 원소에 잘못된 형의 객체 배정시 발생하는 예외 InvalidCastExcept..

① 공부/C#

스레드와 애트리뷰트

- 스레드의 프로그래밍, 상태, 스케줄링, 동기화 이해 1. 스레드 - 순차 프로그램과 유사하게 시작, 실행, 종료의 순서를 가짐 - 프로그램 내에서만 실행 가능 - 프로그램 내부에 있는 제어의 단일 순치 흐름 메소드 기능 Thread.Start() 해당 스레드를 실행 Thread.Abort() 해당 스레드 종료 Thread.Join() 해당 스레드의 실행이 종료될 때까지 기다림 Thread.Suspend() 해당 스레드를 대기 상태로 만듦 Thread.Resume() 대기 상태 스레드를 실행 상태로 만듦 Thread.Sleep() 지정 시간동안 실행을 멈추고 대기상태로 감 동기화 ㅇ 비동기 스레드 - 각각의 스레드는 그의 실행에 필요한 모든 자료와 메소드 포함 - 병행으로 실행 중인 다른 스레드의 상태..

① 공부/C#

델리게이트와 이벤트

1. 델리게이트 위임 : 대리자라고 불리는 것, 메소드 캡슐화에 사용, 특정 이름으로 대신하여 사용할 수 있도록 함 대리자 : 대리자는 이어서 학습할 이벤트의 기반이 됨, 인자의 경우 형식과 순서가 모두 같아야함 델리게이트 예시 delegate void SampleDelegate(int param); //델리게이트 정의 class DelegateClass { public void DelegateMethod(int param) { //델리게이트할 메소드 } } 2. 이벤트 이벤트 : 어떤 사건을 의미, 소프트웨어에서 버튼클릭/키보드입력 하는 것, 항상 대리자와 함께 사용됨 이벤트 처리기 등록의 예 Event = new DelegateType(Method); //이벤트 처리기 등록 Event += new D..

① 공부/C#

연산자 중복과 인터페이스

1. 연산자 중복 연산자 중복 : 시스템에서 제공한 연산자를 재정의 하는 것, 클래스만을 위한 연산자 연산자 중복 방법 - 수정자는 반드시 public static - 사용자 정의 형 변환 가능 2, 인터페이스 인터페이스의 의미 : 사용자 접속을 기술할 수 있는 프로그래밍 단위 인터페이스의 특징 - 지정어 interface 사용 - 멤버로는 메소드, 프로퍼티, 인덱스, 이벤트가 올 수 있으며 모두 구현 부분이 없음 - 다중 상속 가능 - 접근 수정자 : public, protected, internal, private, new 모두 5개 - 생성자 갖지 않으며 모두 public 속성을 가짐(static불가, 객체를 가질 수 없음) 인터페이스 추상 클래스 - 다중 상속 지원 - 오직 메소드 선언만 가능 -..

① 공부/C#

프로퍼티와 인덱서

프로퍼티(property) - 클래스의 private 필드를 형식적으로 다루는 일종의 메소드 프로퍼티의 정의 [property-modifiers] returnTypePropertyName { get { //get-accessor body } set { //set-accessor body } } 인덱서(indexer) - 배열 연산자인 '[]'를 통해 객체를 다룰 수 있도록 함 - 지정어 this를 사용하고, '[]'안에 인덱스로 사용되는 대개 변수 선언 인덱서의 수정자 - static만 사용할 수 없으며, 의미는 메소드와 모두 같음 - 접근수정자(4개), new, virtual, override, abstract, sealed, extern (총 10개) 인덱서의 정의 [indexer-modifiers]..

① 공부/C#

파생 클래스, 구조체 및 네임 스페이스

파생클래스 - 기존의 클래스를 베이스 클래스(base class)라 부름 - 새로 정의된 클래스를 파생 클래스(derived class)라 부름 상속(Inheritance) - 베이스 클래스의 모든 멤버들이 파생 클래스로 전달되는 기능 - 베이스 클래스를 정의하고 베이스 클래스로부터 파생 클래스 확장 - 클래스의 재사용성 증가 단일상속 : 베이스 클래스 1개 다중상속 : 베이스 클래스 2개이상 클래스의 정의 [class-modifiers] class DerivedClassName : BaseClassName { //member declarations } - 콜론(":") 옆에 베이스 클래스 이름을 명시 - 파생클래스는 베이스클래스의 모든 멤버를 상속받음 using System; class BaseClas..