Beschreibung:
Ich möchte feststellen, ob die Scrollbars im TreeView sichtbar sind oder nicht. Leider konnte ich nichts eingebautes hierzu finden und bin deswegen auf GetWindowLong zurückgefallen. Gibt es wirklich nichts einfacheres?
Das klappt wirklich, das hat sich seit Windows 3.x nicht geändert 😁
const int GWL_STYLE = -16;
const int WS_HSCROLL = 0x100000;
const int WS_VSCROLL = 0x200000;
[DllImport("user32.dll", SetLastError = true)]
static extern int GetWindowLong(IntPtr hWnd, int nIndex);
private bool isHorizontalScrollbarVisible(Control c)
{
int style = GetWindowLong(c.Handle, GWL_STYLE);
return (style & WS_HSCROLL) != 0;
}
private bool isVerticalScrollbarVisible(Control c)
{
int style = GetWindowLong(c.Handle, GWL_STYLE);
return (style & WS_VSCROLL) != 0;
}
Schlagwörter: Scrollbar, TreeView
Hi ha ho, jetzt simmer widder froh 🙂
Ob das hier das richtige Forum dafür ist? Ich bin kein Moderator...
Hast du mal versucht, die Methoden zu verwenden, mit denen man rausfinden kann, welches das erste angezeigte (sichtbare) Element ist, oder wie hoch ein Element ist? Ich hab jetzt zwar auf Anhieb keinen konkreten Code anzubieten, aber in die Richtung würde ich mal suchen. Vielleicht ergibt sich auch ein Unterschied in der ClientSize-Eigenschaft mit und ohne Scrollbar.
PS: Die Schlagwörter kannst du dir sparen, die kommen beide bereits im Text vor (und wären somit bestenfalls Stichwörter 😉).
Hallo LonelyPixel,
Ob das hier das richtige Forum dafür ist? Ich bin kein Moderator...
für die Frage natürlich eigentlich nicht (deshalb sollte die, wenn dann nur sehr knapp besprochen werden), aber für die Lösung, die er gepostet hat, natürlich schon.
herbivore