문제

내가 노력하고 프로그래밍 방식으로 위치를 일정 내에서 컨트롤 양식에 따라 사이의 차이는 형태의 최소 크기와 그것의 클라이언트 사이즈-이행을 생성에 따라 다른 결과가 무엇인 테마는 사용자가 로드(주로 문제가 될 것으로 보인다는 사실로 인해 제목 표시줄을 형성 테두리가 서로 다른 높이/폭이 다양한 테마).가 사용하는 고도의 전체 창(을 포함하여 제목 바 등)을 하지만 이 작동하지 않는 것으로 예상되:(

이것은 불행히도 원인이 포함된 컨트롤 misalign.이는 특정 사용 시나리오를 사용의 자동적인 레이아웃 컨트롤(와 같은 레이아웃을 위원회)지 않은 실행 가능한 솔루션입니다.

나는 뭔가가 분명한 있는 더 나은 방법을 이?

죄송하는 경우 이 질문은 벙어리

많은 감사 Dave

도움이 되었습니까?

해결책

내가 그것을 정확하게 해결하는 것을 찾은 유일한 방법은 다음과 같은 일을하는 것입니다.

int delta = this.Height - this.ClientRectangle.Height;

그런 다음 클라이언트에서 무언가를 기반으로해야 할 때마다 형식이 있습니다 (일부 버튼으로 자동 크기의 양식을 원할 때 사용하고 주변의 경계가 동일합니다).

그래서 당신을 위해 :

int delta = this.Height - this.ClientRectangle.Height;
int actualMinHeight = this.MinimumSize.Height - delta;

HTH

편집 : 사용해 보았습니다 SystemInformation.Border3DSize 그리고 SystemInformation.BorderSize 속성이지만 나에게 올바른 너비를주지 않았습니다.

다른 팁

나는 100%확실하지 않은 경우 요청을 할 수 있어야하는 것을 의미한 크기 조절기를 동적으로 런타임 시에 따라 형태로,두께의 국경 아이콘은 간격 등,그러나,면이 닫힌 영역,나는 나 자신을 비난에 대한 오해,당신의 질문에 여기에 문서 CodeProject.언급한 이후 다른 국경 간 크기 등에,당신은 수도에서 보고 싶은 통계 시스템을 제어하는 국경 간 크기에 의해 사용하수를 getsystemmetrics pinvokes,보 이러한 일이며, .여기에 보도 pinvoke.net 웹사이트 에 대한 getsystemmetrics.

이, Best regards, 톰.

이 문제를 우연히 발견하는 사람이라면 누구나 여기서 좋은 사람들이 찾을 수있는 최고의 솔루션은 다음과 같은 선을 따라 무언가를 사용하는 것이 었습니다.

Dim clientRectDelta As Integer = Me.Height - Me.ClientRectangle.Height - (SystemInformation.Border3DSize.Height * 2)
Dim actualMinimumHeight As Integer = Me.MinimumSize.Height - clientRectDelta
Dim deltaHeight As Integer = Me.ClientRectangle.Height - actualMinimumHeight

그러나 이것은 모든 제어 특정 테마 의존적 높이를 무시합니다 (예 : ListViews Change에서 열 헤더의 높이는 ListView의 전체 높이를 변경하는 것처럼 보이지만 대부분은 작동하는 것 같습니다.

이 문제를 도와 준 Pondidum, Tommieb75 및 Nobugz에게 큰 감사를드립니다! (모두 미안하지만 현재 모든 답변을 +1로 표시 할 충분한 명성이 없습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top