.NET Compact Framework에서는 FormWindowState.Minimize 값이 없습니다. 내 애플리케이션을 최소화하여 어떻게 활성 상태와 사용 가능 상태로 유지할 수 있습니까?하지만 이전 애플리케이션에 포커스를 되돌려 놓으십시오. 나는 창을 사용했습니다 이후.NET Compact Framework의 코드로 폼을 최소화하는 방법
답변
그것은 오랜만 이동 — 그것은 여전히 포켓 PC 2002 불렀다, 그래서 이것은 날짜 —에서 방법 경우가 있습니다 만, 그 시간이이 X
에서 클릭의 기본 동작이었다 그때 앱의 오른쪽 상단에 있습니다. 닫히기보다는 앱이 배경을 보냅니다. 나는 그것을 바꿨어?
동의합니다. WinCE는 Windows 클라이언트 또는 서버와 다릅니다. –
"최소화"와 "닫기"사이의 "확인"단추의 동작을 변경하는 Form.MinimizeBox 속성에 대해 알고 있습니다. 내가 찾고있는 것은 코드로 폼을 최소화하는 방법이다. –
활성 폼에서 Hide()를 호출하십시오.
Windows Mobile에서는 양식이 보이지 않기 때문에 이것이 내가 원하는 행동이 아닙니다. 더 이상 앱이 보이지 않습니다. 저는 코드로 "이전 프로세스"로 다시 전환 할 방법을 찾고 있습니다. –
글쎄 WinMo는 윈도우에 대해 최소화 상태가 아닙니다. "보이지 않게"된다는 것은 무엇을 의미합니까?양식을 숨기면 투데이 화면이 Z 순서대로 앞으로 나오지 않거나 다른 프로세스가 종료되지 않는 한 위에 표시된 마지막 양식이 맨 위에 표시됩니다. – ctacke
나는 일반 주춤 (4.2 및 5.0)에서 개발하고 있어요 그래서 난 내 솔루션은 윈도우 모바일의 문제에 대한 작동하는지 모르겠어요.
이 시나리오에서는 양식이 전체 화면 (작업 표시 줄 숨김 포함)을 차지하고 제목 표시 줄이없고 코드를 최소화 할 수있는 기능이 필요하며 최소화 된 경우 작업 표시 줄에 응용 프로그램 아이콘이 표시 될 수 있습니다. 복원) 응용 프로그램 스택의 이전 프로그램에 포커스를 둡니다. 그것은 나쁘지는 않지만 실제로는 모든 요구 사항을 충족시키지 못했지만 동시에 약간의 속임수가 필요했습니다.
다른 사람들이 게시 한 것처럼 Compact Framework에는 Form.Minimize()가 없습니다.
Form.Hide()
앱을 복원 할 수있는 방법이 없습니다. P/InvokingShowWindow(Form.Handle, 6)
, 여기서 6 = SW_MINIMIZE는 응용 프로그램을 작업 표시 줄로 최소화하지만Form.FormBorderStyle = Normal
(None이 아닌) 경우에만 응용 프로그램 제목 표시 줄을 표시합니다.- 최대화 대신
Form.WindowState = Normal
을 설정해야 앱을 최소화했을 때 즉시 복원 할 수있었습니다.
결국 내가 원하는 것을 얻기 위해 다음을 작성했습니다. 그것은 수동으로 응용 프로그램 크기를 조정하고 볼 수있는 화면에서 제목 표시 줄을 이동할 수 있도록 약간의 추가 높이로 화면을 채우고 응용 프로그램 크기를 설정하는 작업이 필요했습니다. 앱이 작업 표시 줄을 숨길 수있는 이벤트를 복원 가로 채기
는public class MyForm
{
public MyForm()
{
InitializeComponent();
NativeMethods.HideTaskbar();
FormBorderStyle = FormBorderStyle.FixedSingle;
WindowState = FormWindowState.Normal;
Rectangle screenBounds = Screen.PrimaryScreen.Bounds;
int taskBarHeight = SystemInformation.MenuHeight;
NativeMethods.MoveWindow(Handle,
0, -taskBarHeight,
screenBounds.Width, screenBounds.Height + taskBarHeight);
}
public void HandleMinimize()
{
NativeMethods.ShowTaskBar();
NativeMethods.ShowWindow(Handle, WindowShowStyle.Minimize);
}
방법이 더 복잡하고 원래 작성자가 작업 표시 줄을 언급하지 않았기 때문에 나는 그것으로 가지 않을 것이다.
정적 NativeMethods 클래스 메서드는 모두 P/Invoke 문에 대한 래퍼입니다. 이러한 구현에 대한 자세한 내용은 http://www.pinvoke.net의 coredll 섹션을 참조하십시오.
대단히 고마워요. 나는 그것을 시도 했어야했다! –