https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.form.keypreview?view=netframework-4.8

 

Form.KeyPreview Property (System.Windows.Forms)

--> Form.KeyPreview Form.KeyPreview Form.KeyPreview Form.KeyPreview Property 정의 이 문서의 내용 포커스가 있는 컨트롤에 이벤트가 전달되기 전에 폼이 키 이벤트를 받을지 여부를 나타내는 값을 가져오거나 설정합니다.Gets or sets a value indicating whether the form will receive key events before the event is passed to

docs.microsoft.com

적절한 곳에 KeyPreview = true; 하면 키가 동작하기 시작함..

(저는 키다운 받는 코드 전에 넣었음)

p1.SizeMode에서 지정해주는 것은 그림을 어떤 형식으로 가져오는지 입니다. 저는 꽉 채움으로 했어요

 

이렇게 하시면 됩니다(public Form1() 위의 Button btn;은 Form1_Load에 넣어도 되요 맘대로~ 

 

우선 폼의 사이즈는 1000, 500입니다.

Padding은 0, 0, 0, 0이구요

 

저기 픽쳐박스의 크기는 100, 100입니다.  또한 Padding과 Margin은 다 0이구요.

위 그림에서 잘 안보이 실 수도 있는데요, 격자(모눈) 간격은 100입니다.

 

저 이미지에 위치값을 100을 더하면 제 생각으론 바로 한 칸만 딱 맞게 움직여야 할 것 같은데 아래와 같이 빈 공간이 있네요.. 이거 어떻게 빈 공간을 없앨까요?

(위에 합성 잘못해서 약간 균형이 이상하지만, 서로간의 움직임에 동일한 간격이 있습니다)

 

 

 

위와 같이 주 디스플레이의 크기가 125%로 되어 있어서 이미지에 문제가 있었던 것이였습니다.

그리하여.. 'DPI 비인식 프로세스로 Visual Studio 다시 시작' 글귀를 누르면 자동으로 다시 시작이 되고

 

이와 같이 모눈 간격이 100으로 셋팅 했는데, 이미지가 줄어든 것을 보실 수 있습니다.

100, 100에서 88, 80으로요.. 그래서 다시 100, 100으로 만들어 주고 실행하면 빈틈이 없어집니다~

그읏!

private void Form1_Load(object sender, EventArgs e)
{
        this.FormBorderStyle = FormBorderStyle.None;
        this.WindowState = FormWindowState.Maximized;
}

 

이렇게 해주거나

 

직접 Form1.cs [디자인] 창에서 폼 클릭하고 속성창에서 아래와 같이 설정하면 된다.

 

Form1과 Form2가 있는 경우에

 

Form1에서 Form2.Show();하면

Form1의 창과 Form2의 창을 둘다 사용이 가능하지만(버튼 같은 것들 동작가능)

 

 

Form1에서 Form2.ShowDialog();하면

Form1은 켜있지만, 사용이 불가능함. Form2만 사용가능.

가끔 프로그램 설치하는 창에서 작은창 하나 떳을 때 밖에창 클릭하면

소리나면서 화면 깜빡거리며 접근(사용)이 불가한 것처럼.

+ Recent posts