728x90

Application/C# (WinForm) 37

[C# WinForm] Form 반 투명하게 만들기 (컨트롤 미 적용)

Form의 Opacity 옵션을 쓰면 Form의 컨트롤까지 전체가 영향을 받습니다 그래서 Form만 반투명하게 하고 싶다면 아래와 같이 코드를 작성하면 Form의 투명도를 조절할 수 있습니다 protected override void OnPaintBackground(PaintEventArgs e) { var sb = new SolidBrush(Color.FromArgb(30, 80, 80, 80)); e.Graphics.FillRectangle(sb, this.DisplayRectangle); } 위의 코드 중 FormArgb의 값만 조절하면 원하는 색상의 반 투명 창을 만들 수 있습니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

[C# WinForm] ListBox 오른쪽 마우스 클릭 선택

ListBox의 오른쪽 마우스를 눌렀을 때 해당 항목을 선택하게 하고 싶다면 아래와 같이 코드를 작성하면 됩니다 private void listBox1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { listBox1.SelectedIndex = listBox1.IndexFromPoint(e.X, e.Y); //추가 코드 입력 } } 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

[C# WinForm] 프린트 다중 페이지 출력

PrintDocument의 이벤트 PrintPageEventHandler 에서 다중 페이지를 출력하고자 할 때는 함수 내 e.HasMorePages 변수를 true로 변경해주면 됩니다 가령 페이지를 2페이지 출력을 원한다면 아래와 같이 코드를 작성하면 됩니다 private int m_iTotalPages = 2; private int m_iProcPages = 1; private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { if (m_iTotalPages > m_iProcPages) { e.HasMorePages = true; m_iProcPages++; } // 출력을 위한 Grap..

[C# WinForm] 프린트 하기

C#의 기본 클래스를 활용해 프린트하는 방법입니다 private void Print() { PrintDocument Doc = new PrintDocument(); Doc.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(Test_PrintPage); Doc.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("A4", 840, 1188); PrintPreviewDialog ppd = new PrintPreviewDialog(); ppd.Document = Doc; ppd.ShowDialog(); } private void Test_PrintPage(object send..

[C# WinForm] 구조체 내부 배열 초기화

구조체 안의 배열을 선언은 가능하지만 배열의 할당을 위해서는 아래와 같이 코드를 작성해 주어야 합니다 private struct _STRUCT_DATA { public string strValue; public string []strValues; public _STRUCT_DATA(int iArraySize) { strValue = ""; strValues = new string[iArraySize]; } }; // 구조체 선언 _STRUCT_DATA struct_data = new _STRUCT_DATA(5); 초기화를 위해서는 배열 안의 모든 변수에 초기값 설정이 필요하며 배열 크기를 입력받아 할당을 해야 합니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

[C# WinForm] 키움 증권 Open API 분봉차트 가져오기

특정 종목의 분봉차트를 가져오고 싶다면 opt10080 TR 코드를 사용해서 가져올 수 있습니다 //종목코드 = 전문 조회할 종목코드 SetInputValue("종목코드", "입력값 1"); //틱범위 = 1:1분, 3:3분, 5:5분, 10:10분, 15:15분, 30:30분, 45:45분, 60:60분 SetInputValue("틱범위", "입력값 2"); //수정주가구분 = 0 or 1, 수신데이터 1:유상증자, 2:무상증자, 4:배당락, 8:액면분할, 16:액면병합, 32:기업합병, 64:감자, 256:권리락 SetInputValue("수정주가구분", "입력값 3"); //Tr 요청 CommRqData( "주식분봉차트조회요청","opt10080","0", "화면번호"); 위의 방식으로 Tr을 요청..

[C# WinForm] 키움 증권 Open API 조회횟수 제한

키움 증권 Open API를 이용할 시 사용제한이 되는 경우가 있습니다 조회 요청으로 CommRqData / SendCondition / CommKwRqData 3가지가 묶음으로 1초당 5회로 제한되며 주문 요청으로 SendOrder / SendOrderFO / SendOrderCredit 3가지가 묶음으로 1초당 5회로 제한됩니다 이를 회피하기 위해서는 Thread를 활용해 주문 요청을 하고 순차적으로 처리하는 방식으로 프로그래밍되어야 합니다 간단한 예제로 0.3초당 1건의 데이터와 1시간에 1천 건의 데이터를 처리하는 구문은 아래와 같습니다 using System.Collections; private static int m_iOrderCount; private static DateTime m_dtOr..

[C# WinForm] 키움 증권 OpenAPI 당일 순익률 가져오기

당일 수익률을 가져오기 위한 TR 코드는 opt10074를 이용하면 됩니다 해당 코드를 이용할 시 당일 매수금액 / 매도 금액 / 매도손익금 / 수수료+세금 값을 가져올 수 있습니다 아래와 같이 코드를 작성해서 OpenAPI를 통해 메시지를 전달합니다 m_axKHOpenAPI.SetInputValue("계좌번호", {계좌번호}); m_axKHOpenAPI.SetInputValue("시작일자", DateTime.Now.ToString("yyyyMMdd")); m_axKHOpenAPI.SetInputValue("종료일자", DateTime.Now.ToString("yyyyMMdd")); m_axKHOpenAPI.CommRqData("일자별실현손익요청", "opt10074", 0, "0200"); 이후 OnR..

728x90
반응형