jfri kim
원래는 완전 별로였지만 Visual Studio 2022부터 WinForm의 기본 아이콘이 심플해서다른 GUI에서 사용하고 싶어하는 경우가 많이 생긴것 같습니다.저도 그렇고..그래서 WinForm 기본 아이콘의 ico 파일과 크기별 png파일을 추출하여 업로드합니다. 필요에 맞게 사용하세요.
인터넷에 검색시 여러가지 방법이 나오지만 윈도우 시작시 실행될 경우 작동하지 않는 경우가 생겨서어떤 방법이 권장할 수 있는 방법인지 테스트해보았다. 1. System.Windows.Forms.Application.StartupPath우선 WPF에서도 윈폼에서 쓰이는 방법인 Application.StartupPath를 사용하는것이 가능하다.단, 앞에 System.Windows.Forms.을 추가해야 한다.윈폼에서 사용하는 방법으로 WPF에서도 정확하게 작동함을 알 수 있다.윈폼에 정말 편리한 기능이 많아서 WPF 프로그램을 만들때 아쉬울때가 많다.물론 윈폼의 기능 대부분을 이용할 수 있지만... 2. Directory.GetCurrentDirectory()프로그램의 실행파일의 폴더경로를 알아내지 못하고 ..
윈폼에서는 IndexFromPoint 메서드를 통해 클릭이벤트가 발생된 커서 위치의 ListBoxItem의 Index를 쉽게 가져올 수 있었지만 wpf에서는 직접 알아내야 한다. 일단 Context Munu를 만들어야한다. ContextMenu contextMenu = new ContextMenu();MenuItem menuItemRename = new MenuItem();menuItemRename.Header = "이름 바꾸기";contextMenu.Items.Add(menuItemRename); MenuItem menuItemDelete = new MenuItem();menuItemDelete.Header = "삭제"; contextMenu.Items.Add(menuItemDelete); wpf의 L..
이 프로그램은 막 윈폼 기초수준을 끝마치고 작성한 첫 윈폼 프로그램이다.이니셜이 MA인 게임의 한글화를 보조하는데 사용된 프로그램이다. 폼로드 이벤트시 SetupDataGridView 와 SetData 메서드로 어느정도 정규화 해보려는 시도가 보인다.그런데 전체코드를 보면 SetupDataGridView 와 SetData 가 따로 사용된 적은 없어서 한 메서드로 해도 되지 않았나 싶다.심지어 프로그램 시작시 1번밖에 사용되지 않지만.. 훗날을 생각하면 이런식으로 메서드를 만들어 놓는 것도 좋은것 같다. SetupDataGridView 메서드는 DataGridView를 설정하는 메서드이다. 이런식으로 데이터그리드뷰를 3열로 만들고 열의 이름을 정하는 내용이다.이건 디자인편집기에서 편하게 할 수 있기 때문에..
오랜만에 C언어 공부할겸 켜서 그냥 막 #include 쳤는데stdio.h에 빨간줄이 그어져있고 컴파일이 안되어서 당황스러웠습니다.이제 C를 많이 안쓰긴 하는지 C라이브러리를 비주얼스튜디오 기본설치에서 빼버렸네요.Windows 10 SDK를 설치하면 해결되는 문제니 이 글대로 따라해주세요. 우선 비주얼스튜디오는 종료해주시고 Visual Studio Installer를 실행합니다. 설치된 Visual Studio 버전에서 수정 버튼을 누르세요. C++를 사용한 데스크톱 개발 메뉴를 펼치고Windows 10 SDK를 체크하시고 수정버튼을 누르시면 다운로드후 설치됩니다.설치후에 실행하시면 이제 잘되실겁니다.
생각보다 이것에 대한 정보가 많이 없고 알려진 방법중에 제한점이 있는 방법들이 많아서제일 괜찮은 방법을 찾은김에 정리해봅니다. //InitializeComponent 후에 바로 ShowInTaskbar를 false로 하여 작업표시줄에 나오지 않게 합니다.//ShowInTaskbar를 false로 하면 키보드 후킹이 되지 않습니다.//따라서 Form이 보이고 난후 다시 true로 바꿔줘야합니다.//Opacity를 0으로 하면 Form이 보이지 않습니다. 이또한 후에 다시 바꿔줘야합니다.public Form() { InitializeComponent(); this.ShowInTaskbar = false; this.Opacity = 0;} //Form의 Shown 이벤트에서 Hide..