이것은 질문에 대한 답은 아니지만 모든 화면 내에서 창 포인트(위치)에 대한 추가 통찰력을 추가할 뿐입니다.)
아래 코드를 사용하여 포인트(예: 마지막으로 알려진 창 위치)가 전체 데스크톱의 범위 내에 있는지 확인하세요. 그렇지 않은 경우 창의 위치를 기본값인 pBaseLoc으로 재설정하세요;
코드가 작업 표시줄이나 다른 도구 모음을 고려하지 않는다면 직접 설정하세요.
사용 예: 스테이션 A에서 창 위치를 데이터베이스에 저장합니다. 사용자가 모니터가 2개인 스테이션 B에 로그인하여 창을 두 번째 모니터로 이동하고 새 위치를 저장한 후 로그아웃합니다. 다시 스테이션 A로 돌아오면 위의 코드를 사용하지 않으면 창이 표시되지 않습니다.
제가 추가로 해결한 방법은 사용자 ID와 스테이션의 IP(& winLoc)를 데이터베이스 또는 특정 앱의 로컬 사용자 환경 설정 파일에 저장한 다음 해당 스테이션 및 앱에 대한 사용자 환경 설정을 로드하는 것이었습니다.
Point pBaseLoc = new Point(40, 40)
int x = -500, y = 140;
Point pLoc = new Point(x, y);
bool bIsInsideBounds = false;
foreach (Screen s in Screen.AllScreens)
{
bIsInsideBounds = s.Bounds.Contains(pLoc);
if (bIsInsideBounds) { break; }
}//foreach (Screen s in Screen.AllScreens)
if (!bIsInsideBounds) { pLoc = pBaseLoc; }
this.Location = pLoc;
두 가지 옵션이 있습니다.
시스템파람터s.버추알스린위드스 시스템파람터s.버추알스크렌하이트
시스템린퍼마션.버추알스크린스위드스 시스템린퍼마션.버추알스크린스게이트
이제 하나의 표현식으로 전체 데스크톱 크기를 쉽게 구할 수 있는 약간의 LINQ를 사용하여 이 답변을 최신 상태로 만들어야 할 때라고 생각합니다.
제 원래 답변은 다음과 같습니다:
나는 당신이 원하는 것이 이와 같은 것이라고 생각합니다:
이것이 모든 것을 말해주지는 않는다는 점을 명심하세요. 여러 모니터를 엇갈리게 배치하거나 직사각형이 아닌 모양으로 배열할 수 있습니다. 따라서 (최소, 최소)와 (최대, 최대) 사이의 공간이 모두 표시되지 않을 수 있습니다.
편집:
방금
Rectangle.Union
을 사용하면 코드가 조금 더 간단해질 수 있다는 것을 깨달았습니다:확인:
이것은 질문에 대한 답은 아니지만 모든 화면 내에서 창 포인트(위치)에 대한 추가 통찰력을 추가할 뿐입니다.)
아래 코드를 사용하여 포인트(예: 마지막으로 알려진 창 위치)가 전체 데스크톱의 범위 내에 있는지 확인하세요. 그렇지 않은 경우 창의 위치를 기본값인 pBaseLoc으로 재설정하세요;
코드가 작업 표시줄이나 다른 도구 모음을 고려하지 않는다면 직접 설정하세요.
사용 예: 스테이션 A에서 창 위치를 데이터베이스에 저장합니다. 사용자가 모니터가 2개인 스테이션 B에 로그인하여 창을 두 번째 모니터로 이동하고 새 위치를 저장한 후 로그아웃합니다. 다시 스테이션 A로 돌아오면 위의 코드를 사용하지 않으면 창이 표시되지 않습니다.
제가 추가로 해결한 방법은 사용자 ID와 스테이션의 IP(& winLoc)를 데이터베이스 또는 특정 앱의 로컬 사용자 환경 설정 파일에 저장한 다음 해당 스테이션 및 앱에 대한 사용자 환경 설정을 로드하는 것이었습니다.
실제 이 모니터의 afaq 픽셀 크기를 사용할 수 있습니다.
'의' 시스템스트로이 니며 사용할 수 있습니다.
이 같은 기능을 하도록 만들 수 있습니다.
그리고 화면 하나, 둘, 등에 비해 다음과 같은 변수로 구할 수 있습니다.
그런 다음 니며 내려받습니다 화면:
이와 같은 '코드', '높이' 등 모든 속성 너버 얻을 수 있습니다.
이 방법은 모두 포함된 되돌려줍니다 사각형에는 screens& # 39. 가장 낮은 값을 사용하여 니며 Top, 가장 높은 값을 왼쪽 및 오른쪽 아래.
5 988 {{{000}}}
내가 생각하는 가장 좋은 방법은 " 내려받습니다 real"; 화면 크기, 직접 비디오 컨트롤러 값을 얻을 수 있다.
이 작업을 어떻게해야합니다;) 반갑도다.