Je suis complètement nouveau dans la programmation GUI et j'ai besoin d'un peu d'aide avec une liste de cadres d'image.Collections .NET et accès aux méthodes d'objets
L'idée est que j'ai une liste de cadres d'image. Lorsqu'un utilisateur clique sur celui que je veux (par exemple), changez la propriété BorderStyle de celle sélectionnée en Fixed3D, mais changez les bordures de collection restantes en FixedSingle (ou quelque chose comme ça). Quelle est la bonne façon de faire quelque chose comme ça? Je suppose que la plus grande image est comment puis-je obtenir une méthode d'une classe pour appeler une méthode d'un autre sans avoir aucune information à ce sujet?
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);
}
}
Cela dépend beaucoup de ce cadre UI que vous utilisez. Dans WPF, par exemple, vous le feriez avec des liaisons de propriétés et des styles (et éventuellement des modèles). –