본문 바로가기

728x90
반응형

프로그래밍&IT/C#

(34)
TextBox에 숫자만 입력하기 & 3자리마다 콤마(,) 찍기 C# Winform (윈폼)의 기본 컨트롤 TextBox에 값을 입력할 때 필요한 기능들을 정리해봤다.알고리즘매매만들다보니 보유종목별로 평균 매입단가 등을 입력하거나 출력을 위해서 필요한 기능이라 찾아봤다.프리랜서 일 구할때는 확실히 Java가 낫긴하지만, 개인 프로젝트 (사업?)을 할 때는 C# Winform 을 시작한게 나쁘진 않았다는 생각이다. 목차숫자만 입력하기 (단, 삭제를 위해선 Back space는 있어야겠지?)숫자 입력시 3자리마다 콤마 찍기 숫자만 입력하기 public static void Textbox_KeyPress_ToEnterDigit(object sender, KeyPressEventArgs e) { if(!char.IsDigit(e.KeyChar) && e.KeyChar ..
스레드 동기화를 위한 동기화 객체들 알고리즘 매매를 개발하다보니비동기 그리고 스레드 관련된 일이 좀 많은 듯하다. 이에 스레드 동기화를 위한 객체들에 대해복습차 다시 한번 살펴봤다. 스레드동기화를 위한 동기화 객체들 1. MonitorMonitor는 객체의 동기화에 사용되며, 스레드가 임계 구역에 진입할 때 락을 설정합니다. 생성자가 따로 없으며Monitor.Enter와 Monitor.Exit을 사용하거나lock 키워드를 사용합니다.- 사용 예시lock (obj) { // 임계 구역 }Monitor.Enter(obj); try { // 임계 구역 } finally { Monitor.Exit(obj); }2. Mutex (뮤텍스)Mutex는 프로세스 간 동기화를 지원하는 동기화 객체로, 하나의 스레드만이 리소스에 접근하도록 보장합니다.- 생..
C# 윈폼에서 사용할 무료 차트 컴포넌트 알고리즘 매매 프로그램을 개발하고 있는 중에,수집된 데이터와 분석된 데이터 그리고 처리 (매매 주문과 이에 대한 처리 상황) 등을리포트성으로 받고 분석하고 싶은 생각이 들었다.이에 Winform에 사용할 무료 차트 컴포넌트를 미리 체크해봤다. 챗GPT는 C# 윈폼에서 사용할 무료 차트 컴포넌트들 어떤 걸 추천하는가? 1. ZedGraph* 설명: ZedGraph는 매우 간단하고 가벼운 차트 라이브러리로, 2D 라인, 바, 파이 차트를 지원합니다. 비교적 오래된 라이브러리지만, 여전히 많은 프로젝트에서 사용되고 있습니다.링크: https://github.com/ZedGraph/ZedGraph보니까, NuGet으로도 받을 수 있는 것 같다.2. LiveCharts* 설명: LiveCharts는 WPF와 Wi..
object의 DBNull처리 & List 마지막부터 가져오기 1). DBNull.Value 처리를 쉽게하기위해 object를 확장하는 부분예전에 투입되었던 프로젝트에서 본 확장 클래스/메서드 소스다.막상 써보니 유용해서 계속 기억해두려고 한다. 매번 DBNull.Value인지 확인해서 Convert를 해주었는데,이걸쓰니 DBNull.Value를 체크안하고 바로 To를 쓸수가 있었다. public static class ExtMethod { // 1) public static T To(this object obj) { if(obj is T) return (T)obj; try { if(obj == DBNull.Value) ..
[Visual Studio] 파일 선택하면 솔루션 탐색기에서 자동 이동하는 설정 개발자마다 차이는 있다만, 내가 현재 작성하는 class , 파일의 위치를 솔루션 탐색기에서 바로 보는 게 필요한 개발자도 존재를 한다. 이에 기본 옵션은 꺼져있다만 아래의 위치로 이동해서 설정을 켜 두면 된다 도구 > 옵션 > 프로젝트 및 솔루션 > 일반 > "솔루션 탐색기에서 활성화된 항목 추적" 을 체크하면 된다. 기본적으로 꺼져있기에 사용하는 사람이 적을 수는 있겠다만 알아두면 간혹 유용할 때가 있는 옵션이다.
[C#] ServiceController 클래스 관련해서 ServiceController네임 스페이스 : System.ServiceProcess (System.ServiceProcess.dll 임포트해야) 개인적으로 만드는 프로그램 중, 필수적인 서비스 (Database 등)가 실행중인지 아닌지 확인할때까 있습니다.이럴때 해당 서비스를 연결하거나 서비스 관련정보를 가져올때ServiceController라는 클래스가 존재한다는 걸 알게되었습니다. 일단 msdn의 내용을 일부 가져왔습니다. (링크) 속성 이름 내용 CanPauseAndContinue 서비스를 일시 중지했다가 다시 시작할 수 있는지를 나타내는 값을 가져옵니다. CanShutdown 시스템을 종료할 때 서비스에 알릴지를 나타내는 값을 가져옵니다. CanStop 시작한 서비스를 중지할 수 있는지의 여부..
[.Net C#] 열거형식, enum - 여러 상수 모아둘때 등 열거형 , enum : 여러 상수들을 정리및 모아둘때 지금 자바 웹 프로그래밍을 배우고 있는 와중에 아무래도 제 주력인 C#을 다시금 보고있습니다. Ex) 게임개발시 게임 캐릭터의 직업. 클래스를 관리하고자할때? // enum 타입 정의namespace ConEx08 {class Program {enum enmCharacter_class {FIGHTER , // 0부터 시작값을 가진다CLERIC ,ELF ,DWARF ,MAGIC_USER ,THIEF = 200 // 필요하면 상수별로 값을 다르게 지정할수도 있다} static void Main(string[] args) { Console.WriteLine("Fighter의 enum 값: " + (int)enmCharacter_class.FIGHTER);C..
[.Net C#] 올림, 내림, 반올림 (Ceiling, Truncate, Round) 올림, 내림, 반올림 (Ceiling, Truncate, Round) 개인적으로 프로그램을 만들다가 필요해서...System.Math 클래스에 포함된 함수들입니다. - 올림 : Math.Ceiling(double값)- 내림 : Math.Truncate(double값)- 반올림 : Math.Round(double값 [, 자릿수]) double n1 = 2.55d;double n2 = 2.44d; Console.WriteLine("Ceiling: n1= " + Math.Ceiling(n1) + ", n2= " + Math.Ceiling(n2)); Console.WriteLine("Truncate: n1= " + Math.Truncate(n1) + ", n2= " + Math.Truncate(n2)); // ..
[.Net C#] Datagridview에서 문자열 -> 숫자열 정렬하기 Datagridview 소트할때, 숫자값으로 정렬하기 Visual Studio에서 기본 제공하는 DataGridView에서는 헤더를 클릭해서 정렬시기본정렬은 문자열기준으로 됩니다. (아래는 제가 개인적으로 만드는 프로그램입니다...)아래는 주식수헤더를 가지고 정렬할때,기본적인 정렬 기준은 문자열이다보니 아래처럼 정렬이 되는데요. [기본 오름차순 & 내림차순한 결과값] 1. DataGridView에서 숫자값 비교하지만, 필요할때는 숫자값을 비교해서 정렬할때가 필요할텐데요.DataGridView의 이벤트인 SortCompare를 등록후 아래처럼 코딩하면 숫자값정렬이 가능합니다. private void dataGridView_SortCompare(object sender, DataGridViewSortComp..
[.Net C#] 확장메서드 (extension method) .Net C# - 확장메서드(Extension method)를 사용해보자. .Net 3.5버전부터 새로 추가된 기능입니다. 기존에 사용되거나 만들어진 클래스, 구조체, 인터페이스 구현 혹은 타입을 직접 변경하지않고 기능을 확장해 사용하는 방법입니다. Int같은 데이터타입이나 만들어진 Class에도 적용이 가능합니다. 몇가지 알아야 할 점들이 있습니다.* 확장메서드는 정적 클래스의 멤버로 정의해야한다.* 확장메서드의 첫번째 매개변수는 this 키워드를 한정자로 써야한다 (그리고 첫번째만)Ex) static class TestExtension {public static void DisplayMethod(this object obj) { ... }...}* 현재 메모리상에 존재하는 객체의 인스턴스를 통해 확장..

반응형