I have a UserControl with several PictureBoxes on it. These are the only controls on the UserControl. All the PictureBoxes are all named ‘pbx’ plus a color such as ‘pbxGrey’ or ‘pbxBlack’. I have a method that selects one of the PictureBoxes and changes the BorderStyle to represent that it has been selected. I have tried to use the this.Controls[“pbx” + color] method but there is no property for setting the BorderStyle.
public void SelectColor(string color)
{
ClearBorderSyles();
this.Controls["pbx" + color]. //No BorderStyle property
SelectedColor = color;
}
I have also tried this to get at the same property:
public void SelectColor(string color)
{
ClearBorderSyles();
Picturebox handle = new PictureBox();
handle = this.Controls["pbx" + color];
SelectedColor = color;
}
In this sample VS says that I can’t implcitly convert a Control to a PictureBox. So what I need to know is how do you get a handle on the control so I can change the BorderStyle? Please answer in C#, or in VB if necessary. Thank You.
You should try using the casting operator:
Also, you shouldn’t assign
handlea new object if you’re planning to throw it away on the next line:I would suggest something like:
or:
Of course, you should check that the control isn’t null before trying to assign or use, etc.
But you get the idea.