2010-06-19 2 views
2

새 창을 호출 한 곳과 동일한 창에 새 양식을 표시하려고합니다. 나는 아래와 같은 코드에 의해이 PrimaryScreen에 양식이나 가상 화면 표시 할 수있는 방법을 알고 :C#에서 현재 화면에 양식을 표시하는 방법은 무엇입니까?

MyForm.Location = Screen.PrimaryScreen.Bounds.Location; 

을하지만 난 현재 화면에 보여주고 싶다. 현재 화면에서 찾아서 표시하는 방법이 있습니까?

+0

응용 프로그램의 기본 형식입니까, 아니면 소유자가 있습니까? –

+0

표시된 양식을 새 양식으로 바꾸시겠습니까? 당신이 마법사를하고있는 것처럼? – Robaticus

답변

3

은 동일한 기술을 사용하지만, 대신 PrimaryScreen를 사용하는 Screen.FromPointCursor.Position을 사용하여 화면 잡아 수 있습니다

Screen screen = Screen.FromPoint(Cursor.Position); 
MyForm.Location = screen.Bounds.Location; 
+0

나는 이것을 시도했다. 그러나 여전히 새 양식이 기본 화면에 표시되며 양식 크기가 약간 짧아집니다. 커서가 놓여있는 화면이 기본 화면인지 표시하려고했는데 올바른 대답을 얻었습니다. 그러나 위치를 지정할 때 제대로 할당되지 않습니다. – Sam

1

당신이 수동으로 startPosition입니다 설정되지 않은 것 소리를.

4

나는 내 양식이 현재 화면 중앙에 표시하려면이 같은 짓을 : 당신은 이미 부모 폼을 같은 화면에 새 양식을 열려면, ShowDialog 메서드를주는 경우에

var screen = Screen.FromPoint(Cursor.Position); 
myForm.StartPosition = FormStartPosition.Manual; 
myForm.Left = screen.Bounds.Left + screen.Bounds.Width/2 - myForm.Width/2; 
myForm.Top = screen.Bounds.Top + screen.Bounds.Height/2 - myForm.Height/2; 
0

상위 폼에 대한 참조 : newForm.ShowDialog(this); 소유자 매개 변수가 없으면 ("this") 상위 폼이 다른 스크린에있는 경우에도 새 폼이 주 화면에서 열릴 수 있습니다.

1
  1. 디자인 모드에서 양식을 클릭하십시오.
  2. StartPosition 속성을 CenterScreen으로 변경하십시오.

활성 화면에서 양식을 열어야합니다. StartPosition의 더 많은 값은 this을 참조하십시오.