Как поместить расширенное Управление WinForms на ToolBox

public static object DeepClone(object obj) 
{
  object objResult = null;
  using (MemoryStream  ms = new MemoryStream())
  {
    BinaryFormatter  bf =   new BinaryFormatter();
    bf.Serialize(ms, obj);

    ms.Position = 0;
    objResult = bf.Deserialize(ms);
  }
  return objResult;
}

Это - один способ сделать это с C# и.NET 2.0. Ваш объект требует, чтобы быть [Serializable()]. Цель состоит в том, чтобы потерять все ссылки и создать новые.

10
задан John Saunders 10 March 2015 в 01:13
поделиться

4 ответа

  1. Build you project with TextBoxExt, make sure it compiles ok.
  2. With the form that you want TextBoxExt on, open the toolbox, right click and select "choose items"
  3. Browse to you .exe or dll that you compiled in 1)
  4. make sure that TextBoxExt has a tick next to it, press ok
  5. TextBoxExt should appear in the toolbox, drag it onto your form

(There is another way of doing this, opening the designer file and renaming the instances of TextBox to TextBoxExt but manual editing of designer files can be considered hazardous by some)

15
ответ дан 3 December 2019 в 16:10
поделиться

Ваш элемент управления должен автоматически появиться на панели инструментов вашего решения. Чтобы он отображался в других проектах, вы должны выполнить «Выбрать элементы панели инструментов», как говорили другие.

Если вы хотите предоставить специальные функции во время разработки, вам также потребуется предоставить некоторые дополнительные атрибуты, связанные с дизайнером, и, возможно, ваши собственный класс, производный от ControlDesigner.

0
ответ дан 3 December 2019 в 16:10
поделиться

Любой пользовательский элемент управления в вашем проекте должен автоматически отображаться на панели инструментов. Я обнаружил, что иногда элементы управления не отображаются, пока вы снова не закроете Visual Studio. Я предполагаю, что проблема связана с кешированием содержимого Toolbox.

3
ответ дан 3 December 2019 в 16:10
поделиться

Вам необходимо добавить конструктор к производному классу.

public class TextBoxExt : TextBox      
{        
    public TextBoxExt()
    {
    }

    protected override void OnKeyPress(KeyPressEventArgs e)        
    {            
         base.OnKeyPress(e);        
    }    
}
0
ответ дан 3 December 2019 в 16:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: