C # Добавление еще одной опции в PictureBox - PullRequest
1 голос
/ 10 августа 2010

Мне было интересно, как я могу добавить .customString к объекту PictureBox.
Что-то вроде:

PictureBox box = new PictureBox();
box.CustomString = "string here";

А потом я получу к нему доступ.

MessageBox.Show(boxname.CustomString);

Спасибо.

Ответы [ 4 ]

3 голосов
/ 10 августа 2010

Если вы хотите добавить свойство к существующему элементу управления, лучшим способом было бы извлечь MyCustomPictureBox из PictureBox и добавить новое свойство в производную версию:

public class MyCustomPictureBox : PictureBox
{

    public string CustomString {get; set;}

}
3 голосов
/ 10 августа 2010

Самый простой способ сделать это - использовать свойство Tag:

PictureBox box = new PictureBox();
box.Tag = "string here";

А позже:

MessageBox.Show((string)box.Tag);
0 голосов
/ 10 августа 2010

Вы можете создать новый класс MyPictureBox, производный от PictureBox.В новом классе вы можете добавить свое собственное свойство.Нечто похожее на приведенное ниже.

public class MyPictureBox : PictureBox
{
  public MyPictureBox():base()
  {}

  public string CustomString
  {
    get{}
    set{}
  }
}

Теперь вы можете использовать новый класс так же, как и в PictureBox, с той лишь разницей, что у вас есть пользовательское свойство / логика.

0 голосов
/ 10 августа 2010
public class MyPictureBox : PictureBox
{
   public MyPictureBox(...) :base(....) {}   // duplicated ctors

   public string   CustomString {get; set;}
}

Теперь использовать его будет немного сложнее.Если вы создали исходную картинку-коробку, перетащив ее в дизайнер Winforms, вам нужно перейти в файл myform.designer.cs и заменить экземпляры PictureBox на MyPictureBox

...