Hallo!
Ich habe ein Problem, wenn ich mittels ScrollControlIntoView() auf einen Button in meinem Button-Array (welche durch Bilder realisiert sind) zugreifen möchte.
Das Array wird in einer eigenen Klasse behandelt, die ich treffend ButtonArray genannt habe. Hier mal der Code:
Ich rufe einfach die Funktion AddNewButton() in meinem Form sooft ich sie benötige auf.
Nun möchte ich nach einem Click-Event auf den Button im aufrufenden Form scrollen, da ansonsten nach der MessageBox automatisch an den Anfang des Forms (also nach oben) gescrollt wird.
Wenn ich die gesammten Funktionen innerhalb des Forms einfüge klappt es, also muss ich dem Programm anscheinend irgendwie begreiflich machen, dass es auf dem aktiven Form scrollen soll.
Wie kann ich das bewerkstelligen?
Ich habe ein Problem, wenn ich mittels ScrollControlIntoView() auf einen Button in meinem Button-Array (welche durch Bilder realisiert sind) zugreifen möchte.
Das Array wird in einer eigenen Klasse behandelt, die ich treffend ButtonArray genannt habe. Hier mal der Code:
Code:
public class ButtonArray : System.Collections.CollectionBase
{
private readonly System.Windows.Forms.Form HostForm;
public System.Windows.Forms.PictureBox AddNewButton()
{
Bitmap bmp = wirelessDruckschalter.Properties.Resources.Geraet;
System.Windows.Forms.PictureBox PicBox = new
System.Windows.Forms.PictureBox();
this.List.Add(PicBox);
HostForm.Controls.Add(PicBox);
PicBox.Image = bmp;
PicBox.SizeMode = PictureBoxSizeMode.AutoSize;
PicBox.Location = new Point(50, 40 + (Count * PicBox.Height) + Count * 50);
PicBox.Tag = this.Count;
PicBox.Click += new System.EventHandler(ClickHandler);
return PicBox;
}
public ButtonArray(System.Windows.Forms.Form host)
{
HostForm = host;
}
public System.Windows.Forms.PictureBox this[int Index]
{
get
{
return (System.Windows.Forms.PictureBox)this.List[Index];
}
}
public void Remove()
{
// Check to be sure there is a button to remove.
if (this.Count > 0)
{
HostForm.Controls.Remove(this[this.Count - 1]);
this.List.RemoveAt(this.Count - 1);
}
}
public void ClickHandler(Object sender, System.EventArgs e)
{
System.Windows.Forms.MessageBox.Show("You have clicked button " +
((System.Windows.Forms.PictureBox)sender).Tag.ToString());
// ScrollControlIntoView((System.Windows.Forms.PictureBox)sender);
}
}
Ich rufe einfach die Funktion AddNewButton() in meinem Form sooft ich sie benötige auf.
Code:
ButtonArray Array = new ButtonArray(this);
for (int i = 0; i < 6; i++)
Array.AddNewButton();
Nun möchte ich nach einem Click-Event auf den Button im aufrufenden Form scrollen, da ansonsten nach der MessageBox automatisch an den Anfang des Forms (also nach oben) gescrollt wird.
Wenn ich die gesammten Funktionen innerhalb des Forms einfüge klappt es, also muss ich dem Programm anscheinend irgendwie begreiflich machen, dass es auf dem aktiven Form scrollen soll.
Wie kann ich das bewerkstelligen?