본문 바로가기

개발언어/C#191

[C#] 윈도우 좌표 Please note that this does NOT work properly with Windows Vista Aero (this includes Windows 10), and reports faulty values. This is largely due to Aero incorporating additional invisible borders which are used to "resize" the window using the cursor. In this instance, the developer should look into using DwmGetWindowAttribute (dwmapi.dll) with DWMWA_EXTENDED_FRAME_BOUNDS. For .NET CF you may nee.. 2021. 12. 14.
[C#] user32.dll API 함수 프로젝트 준비중 user32.dll를 사용해야 할 필요가 생겼다, 그리고 준비하는 동안 사용했던 user32.dll api 함수들을 정리해본다. using System.Runtime.InteropServices; 추가해주고, 시작하자 추가하는 이유는 dllimport를 하기위함이다. 윈도우 창 찾아주는 API - Findwindow를 이용해 찾은 handle을 활용해서 하위 classname 을 검색하는 API 함수 이다. 부모 -> 자식 순서로 찾아야하며 자식 중에 찾지 못하는 경우도 있으니 이럴 땐 당황하지말고 우회 방법을 찾아보도록 하는게 낫다. [DllImport("user32.dll")] public static extern int FindWindow(string lpClassName, stri.. 2021. 12. 14.
[C#] listview(리스트뷰)의 Row높이를 조절 리스트뷰의 타이틀과 row의 높이는 font의 크기에 따라 영향을 받는다. 타이틀의 폰트를 작게하고 Row의 높이를 별도로 조절하고 싶은경우 아래코드를 참고하자. public void Form_Telephone_Load(object sender, EventArgs e) { //글자의 폰트는 알아서 정하고 lvi = new ListViewItem(); lvi.Font = new Font("굴림", 14); lvi.SubItems.Add(iName); ... listView1.Items.Add(lvi); //Row의 높이를 높이기위해 ImageList를 삽입 SetHeight(listView1, 25); } private void SetHeight(ListView listView, int height) { .. 2021. 12. 4.
[C#] 이미지 자연스럽게 겹치기와 회전시키기 C#에서 이미지를 겹쳐서 보이게 할때 위에 있는 이미지와 아래에 있는 이미지가 자연스럽게 겹쳐서 보이게 하려면 위의 있는 이미지의 배경을 투명하게 제작할 필요성이 있습니다. 배경이 투명한 이미지 만들기는 페인트닷넷으로 투명한 배경의 이미지 만들기를 참조하세요. *.PNG, *.GIF등의 투명한 배경을 지원하는 이미지 파일을 제작했다면 아래의 그림과 같이 프로젝트의 리소스 파일에 이미지를 추가합니다. 예제의 코딩 의도는 계기판을 구현하는 것으로 계기판 바탕 이미지 위에 바늘 이미지를 올리고 입력된 각도에 따라 바늘을 회전시켜 보이는 것입니다. ■ 투명 배경의 이미지 겹치기 두개의 이미지를 모두 도구상자의 PictureBox 컨트롤을 통해서 각각 생성하고 프로젝트 리소스 파일에 등록해 두었던 이미지를 등록합.. 2021. 11. 28.
[C#] 문자,숫자,영어,한글 구분 bool IsKorean(char ch) { if ((0xAC00 2021. 11. 25.
[C#]숫자 한글표기 public string Number2Hangle(long lngNumber) { string[] NumberChar = new string[] { "", "일", "이", "삼" , "사", "오", "육" , "칠", "팔", "구" }; string[] LevelChar = new string[] { "", "십", "백", "천" }; string[] DecimalChar = new string[] { "", "만", "억", "조", "경" }; string strMinus = string.Empty; if (lngNumber < 0) { strMinus = "마이너스"; lngNumber *= -1; } string strValue = string.Format("{0}", lngNumber);.. 2021. 11. 25.
[C#]숫자를 한글로 표시하기 (C# 숫자 한글 변환) 전체소스코드 using System; using System.Linq; using System.Windows.Forms; namespace NumberToKorean { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } //화면 실행 버튼 클릭 private void button_Run_Click(object sender, EventArgs e) { long amount; string amountString; string wordUnit; string amountWord = ""; int amountCount; string unitM = ""; string unitE = ""; string unitJ = .. 2021. 11. 25.
[C#] 숫자 (금액) 을 한글로 변환 * C# 숫자(금액) 을 한글로 변환 하기 예제... 메인화면 전체 소스 코드 Form1.cs #region 숫자를 한글로 읽기 변환 ex) 1542500 => 일백오십사만이천오백원 public string CalToHan(string strTmp) { int iTotalLength = strTmp.Length; int iLength = iTotalLength; byte[] cTmp = Encoding.ASCII.GetBytes(strTmp); string sTmp = ""; for (int iCount = 0;iCount < iTotalLength; iCount++) { if (cTmp[iCount] - 48 != 0) { sTmp += NumberHan(cTmp[iCount] - 48) + Numbe.. 2021. 11. 25.
[C#] Excel저장시 오류 해결 ​ 오류메시지 : Microsoft.Office.Interop.Excel.ApplicationClass’ 형식의 COM 개체를 인터페이스 형식 ‘Microsoft.Office.Interop.Excel._Application’(으)로 캐스팅할 수 없습니다. 라이브러리가 등록되지 않았습니다. (예외가 발생한 HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)) 오류로 인해 IID가 '{000208D5-0000-0000-C000-000000000046}'인 인터페이스의 COM 구성 요소에서 QueryInterface를 호출하지 못했으므로 이 작업을 수행할 수 없습니다. ​ 위와 같은 오류가 나타날시에 아래의 사항을 확인해주십시오. ​ 1. 레지스트리 편집기 실행 (실행창에 reg.. 2021. 11. 18.
[C#] ListView 의 항목들을 Excel 파일로 저장하기 Objects Library 를 지원하는 모든 제품들은 COM을 통해 쉽게 해당 Object들을 사용할 수 있습니다 이번 글에서는 엑셀의 Obejcts Library를 참조하여 ListView내용을 엑셀파일로 자장하는프로그램을 만들어 볼 것입니다 소개 Objects Library 를 지원하는 모든 제품들은 COM을 통해 쉽게 해당 Object들을 사용할 수 있게된다. 이번 아티클에서는 엑셀의 Obejcts Library를 참조하여 ListView내용을 엑셀파일로 저장하는 프로그램을 만들어 볼 것이다. 작업진행 [진행1] 해당 COM 을 프로젝트에 참조하기 - 아래 그림과 같이 엑셀의 Objects Library를 참조. 오피스의 버전에 따라 Object Library 이름이 다를 수 있다 저의 경우 오피.. 2021. 11. 18.