C# - Bildlauf ein Panel in windows forms
Bin ich mit VS2010, Windows 7
Ich habe ein panel mit vielen Bild-Boxen. Es hat
AutoScroll = true
Den scroll-Balken funktionieren, wenn ich ziehen Sie es, oder klicken Sie auf es. Ich möchte jedoch, scrollen Sie mit dem Mausrad und Pfeiltasten.
Die Räder reagieren nicht auf alle (und das hinzufügen von event-Handler der form nicht funktioniert, da hört es brennen, wenn ich den Fokus ändern), und die Pfeiltasten verwenden, ich würde programmgesteuert zu Blättern. Ich habe versucht, die folgenden:
panel3.VerticalScroll.Value = panel3.VerticalScroll.Maximum;
Dies nicht funktioniert, müssen Sie die Bildlaufleiste, kaum bewegt überhaupt. Maximale ist immer 100. - für einige Grund.
Was ich versucht habe auf dem Rad-problem (funktioniert nicht):
//Fires as long as i don't change focus to anything
this.MouseWheel += new MouseEventHandler(Panel1_MouseWheel);
private void Panel1_MouseWheel(object sender, MouseEventArgs e)
{
panel3.Focus();
}
Danke.
- Setzen Sie den Fokus auf das Steuerelement, bevor Sie scrollen Sie mit dem Mausrad. Versuchen Sie es erst einmal auf.
- Funktioniert nicht. Ich klickte das panel, es ist Bild-Boxen, und sogar text-Boxen. Rad hat nicht funktioniert.
- Die Verwendung eines TablelayoutPanel ?
- Versucht TableLayoutPanel und FlowLayoutPanel, gleiche Probleme.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein paar Dinge zu versuchen:
Machen Sie Ihre
Panel
haben die erstenTabIndex
Eigenschaft. Das heißt:Natürlich die anderen Steuerelemente auf dem Formular muss neu indiziert korrekt.
Auch, versuchen Sie, den Fokus in der MouseDown-Ereignis:
Könnten Sie tun, MouseEnter, auch, aber, die möglicherweise eine ungerade Benutzeroberfläche, da das bewegen der Maus über die Leiste stehlen würde den Fokus Weg von dem aktuellen aktiven Kontrolle.
Sollten Sie nicht brauchen, um zu abonnieren, um die MouseWheel-Ereignis. Es sollte bewegen Sie die Bildlaufleiste automatisch.
Blättern Sie ein Panel, indem die AutoScrollPosition Eigenschaft. Vorsicht, dass es verwendet negative Werte.
Den Grund, warum das Mausrad nicht funktioniert, ist, weil weder das panel noch die Bildrahmen sind fokussierbaren Steuerelemente. Sie müssen die Nachbesserung der panel-Steuerelement ein bisschen, um es ein Isoliertes. Finden Sie den code in diese Antwort.
Versuchen