본문 바로가기

전체 글325

[C#]투명한 폼에서의 이벤트가 윈도우 버전별로 다르게 작동한다?? 오늘 겪은 황당한 사건입니다. 폼을 겹치게 해 놓고 위에 오는 폼은 투명하게 해 두었습니다. 위에 오는 폼은 아주 작은 버튼만 가지고 투명하게 숨어 있다가 마우스가 그 위로 지나가면 짠! 하고 나타나도록 설계를 했습니다. 코딩은 XP에서 했죠... Windows XP 에서는 투명하게 만든 폼(TransparencyKey, Opacity) 위에서는 이벤트가 작동하지 않습니다. 둘 중 어떤 방법을 써도 말이죠 (저는 TransparencyKey를 사용했습니다.) 그래서 배경이 되는 폼에 MouseMove이벤트를 만들어서 위에 오는 폼의 영역에 왔는지 체크를 하도록 했지요 그렇게 잘 만들어서 노트북에서 돌려 봤습니다. (노트북은 Vista) 그랬더니... 어라? 안됩니다 ㅡㅡ; 다시 XP 에서 하니까 또 됩니.. 2008. 9. 27.
[C#]Alt+Tab을 눌러도 보이지 않게 해보자! Form 에서 다른 Form 을 생성하는 경우 작업표시줄에도 표시되고 Alt+Tab을 누르면 나오는 화면에도 나옵니다. 이것을 없애는 방법이 여러가지 있습니다. ShowDialog() 로 호출하는 방법도 있고, FormBorderStyle을 FixedToolWindow 또는 SizableToolWindow 로 지정하면 Alt+Tab 화면에 보이지 않습니다. 하지만 이 방법들은 무언가 꺼림찍하죠? 다들 특정한 목적으로 쓰도록 만든 것이기 때문에 일반 폼에 적용하기는 무리가 있습니다. 제가 만드는 App의 경우에는 FormBorderStyle을 None으로 설정하고, 소유하는 폼에도 접근해서 작업을 하도록 만들었기 때문에 위의 방법을 쓸 수가 없더군요 그래서 열심히 구굴링을 해서 찾아낸 방법! protect.. 2008. 9. 27.
[C#]메서드 숨기기 이번에는 책에도 많이 나오고 다들 알고는 있지만 잘 쓰지 않아서 가끔 실전에서 생각이 나지 않을 법한 것을 적어보겠습니다. 메서드를 숨긴다? 무슨 말일까요? 일단! 객체지향 언어인 C#에서 클래스를 상속할 수 있다는 것은 다들 아시죠? Form 클래스를 예로 들면.. public class NewForm : System.Windows.Forms.Form { } 이런 식으로 상속할 수 있습니다. 이 경우 Form 클래스에 정의된 다양한 메서드를 사용할 수 있죠. new NewForm().Show(); 2008. 9. 27.
[.NET Framework]내 컴퓨터에 설치된 .NET Framework 버전 확인하기 C#.NET이나 Visual Basic.NET 프로그램 배포시 .NET Framework 버전 문제가 가장 중요하지 않을까 싶습니다. 우리나라처럼 인터넷 속도가 빠른 국가에서는 큰 문제가 되지 않겠지만, 혹시라도 인터넷을 이용하기 어려운 국가에 프로그램을 배포하고자 한다면 이 문제는 치명적이지요. 프로그램을 실행하려는 컴퓨터에 .NET Framework가 설치되어 있다면 가볍게 실행파일만 보내서 실행할 수 있을겁니다. 간단하게 알아보는 방법이 있습니다. (물론 제대로 설치되었는지 확인하려면 좀 더 복잡한 방법을 써야 하겠지만요) 시작->실행 에서 아래 문자열을 복사해 넣고 엔터! %systemroot%\Microsoft.NET\Framework 이 폴더에 들어가면 버전별로 설치가 되어 있습니다. 1.0... 2008. 9. 27.