Ich bin völlig neu in der GUI-Programmierung und brauche ein wenig Hilfe mit einer Liste von Bildkästen..NET-Sammlungen und Zugriff auf Objektmethoden
Die Idee ist, dass ich eine Liste von Bildkästen habe. Wenn ein Benutzer auf einen klickt, möchte ich (z. B.) die BorderStyle-Eigenschaft des als Fixed3D ausgewählten ändern, aber die verbleibenden Sammlungsrahmen in FixedSingle (oder so ähnlich) ändern. Was ist der richtige Weg, um so etwas zu tun? Ich denke, das größere Bild ist, wie bekomme ich eine Methode einer Klasse, um eine Methode eines anderen zu nennen, ohne irgendwelche Informationen darüber zu haben?
class myPicture
{
private int _pictureNumber;
private PictureBox _box;
public myPicture(int order)
{
_box = new List<PictureBox>();
_box.Click += new System.EventHandler(box_click);
_pictureNumber = order;
}
public void setBorderStyle(BorderStyle bs)
{
_box.BorderStyle = bs;
}
public void box_click(object sender, EventArgs e)
{
//here I'd like to call the set_borders from myPicturesContainer, but I don't know or have any knowledge of the instantiation
}
}
class myPicturesContainer
{
private List<myPicture> _myPictures;
//constructor and other code omitted, not really needed...
public void set_borders(int i)
{
foreach(myPicture mp in _MyPictures)
mp.setBorderStyle(BorderStyle.FixedSingle);
if(i>0 && _MyPictures.Count>=i)
_MyPictures[i].setBorderStyle(BorderStyle.Fixed3d);
}
}
Es hängt sehr stark ab, welche UI-Framework Sie verwenden. In WPF beispielsweise würden Sie dies mit Eigenschaftsbindungen und -stilen (und möglicherweise Vorlagen) tun. –