Forums Neueste Beiträge
 

Kosmetik am ToolStripDropDown

23/09/2008 - 11:19 von Florian Simon | Report spam
Hallo zusammen,

ich habe hier ein ToolStripDropDown-Element, in dem sehr viele Eintràge
stehen können. Wenn der Platz auf dem Monitor nicht ausreicht erscheinen
ja dann die beiden Buttons zum Scrollen nach oben und nach unten. Diese
werden durch einen Mausklick aktiviert. Meine Frage ist nun, ob es auch
irgendwie möglich ist, das Scrollen durch ein MouseHover auf die Scroll
Buttons zu aktivieren? Ich habe ein bisschen rumprobiert, aber die
beiden Buttons scheinen von außen nicht so ohne Weiteres erreichbar zu
sein (wegen eigener behandlung von MouseHover, o.à.)

Gruß
Florian
 

Lesen sie die antworten

#1 Marcel Beutner
24/09/2008 - 00:40 | Warnen spam
Am 23.09.2008, 11:19 Uhr, schrieb Florian Simon :

Hallo zusammen,

ich habe hier ein ToolStripDropDown-Element, in dem sehr viele Eintràge
stehen können. Wenn der Platz auf dem Monitor nicht ausreicht erscheinen
ja dann die beiden Buttons zum Scrollen nach oben und nach unten. Diese
werden durch einen Mausklick aktiviert. Meine Frage ist nun, ob es auch
irgendwie möglich ist, das Scrollen durch ein MouseHover auf die Scroll
Buttons zu aktivieren? Ich habe ein bisschen rumprobiert, aber die
beiden Buttons scheinen von außen nicht so ohne Weiteres erreichbar zu
sein (wegen eigener behandlung von MouseHover, o.à.)

Gruß
Florian




Hallo Florian,

Zugriff auf die beiden Buttons bekommt man beispielseise per reflection:

btn = dein ToolStripDropDownItem

<code>
private void button1_Click(object sender, EventArgs e)
{

FieldInfo fi = btn.GetType().BaseType.GetField("dropDown",
BindingFlags.NonPublic | BindingFlags.Instance);
ToolStripDropDownMenu childMenu = fi.GetValue(btn) as
ToolStripDropDownMenu;

FieldInfo fiMenuUp = childMenu.GetType().GetField("upScrollButton",
BindingFlags.NonPublic | BindingFlags.Instance);
ToolStripControlHost btnUp = fiMenuUp.GetValue(childMenu) as
ToolStripControlHost;

FieldInfo fiMenuDown = childMenu.GetType().GetField("downScrollButton",
BindingFlags.NonPublic | BindingFlags.Instance);
ToolStripControlHost btnDown = fiMenuDown.GetValue(childMenu) as
ToolStripControlHost;

btnUp.MouseHover += new EventHandler(btnUp_MouseHover);
btnDown.MouseHover += new EventHandler(btnDown_MouseHover);


}

void btnUp_MouseHover(object sender, EventArgs e)
{
FieldInfo fi = btn.GetType().BaseType.GetField("dropDown",
BindingFlags.NonPublic | BindingFlags.Instance);
//Hier scrollen
}

void btnDown_MouseHover(object sender, EventArgs e)
{
FieldInfo fi = btn.GetType().BaseType.GetField("dropDown",
BindingFlags.NonPublic | BindingFlags.Instance);
//Hier scrollen
}

</code>


Der Scollmechanismus muss aber noch in den events gemacht werden. Hab das
auf die Schnelle leider nicht hinbekommen...

gruss marcel

Ähnliche fragen