Использование "Add Inherites Control"
От: Nameless51  
Дата: 12.02.05 05:46
Оценка:
Прошу прощения за наверное глупый вопрос, но все же. Как создать свой контрол, который бы расширял возможности другого стандартного, например button? Когда я пытаюсь это сделать VS предлагает выбрать сборку, из которой нужно загрузить контрол, от которого будет наследоваться новый. Какую сборку выбирать, чтобы наследоваться от стандартных контролов? Почему, когда я выбираю сборки сторонних производителей, например Xceed.Grid.dll мне выводится сообщение об ошибке: The designer could not be shown for this file because none of the classes within it can be designed, хотя когда я выбирал сборку, компонент из нее отображался?
Re: Использование "Add Inherites Control"
От: Аноним  
Дата: 12.02.05 05:50
Оценка:
Опечатался в названии, естественно "Add InheriteD Control"
Re: Использование "Add Inherites Control"
От: GarryIV  
Дата: 12.02.05 07:48
Оценка:
Hello, Nameless51!

N> Прошу прощения за наверное глупый вопрос, но все же. Как создать свой

N> контрол, который бы расширял возможности другого стандартного, например
N> button? Когда я пытаюсь это сделать VS предлагает выбрать сборку, из
N> которой нужно загрузить контрол, от которого будет наследоваться новый.
N> Какую сборку выбирать, чтобы наследоваться от стандартных контролов?
N> Почему, когда я выбираю сборки сторонних производителей, например
N> Xceed.Grid.dll мне выводится сообщение об ошибке: The designer could not
N> be shown for this file because none of the classes within it can be
N> designed, хотя когда я выбирал сборку, компонент из нее отображался?

Ты не тот визард используешь. Этот используется для наследования user controls. Вышеперечисленные контролы таковыми не являются. Если очень хочется использовать колдуна то можно создать наследника button (как впрочем и любого другого на sealed класа) через мастера, доступного из class view. На проекте жмешь правую кнопку Add — Add Class. Заполняешь Class name потом на закладку Base class выбираешь namespace и base class в нем. Жмешь Finish.

Получается что то такое

using System;

namespace WindowsApplication2
{
 /// <summary>
 /// 
 /// </summary>
 public class XXX : System.Windows.Forms.Button
 {
  public XXX()
  {
   // 
   // TODO: Add constructor logic here
   //
  }
 }
}


По мне так все эти визарды нафиг не нужны. Руками быстрее получается особливо когда РеШарпер помогает.

WBR, Igor Evgrafov.
Posted via RSDN NNTP Server 1.9
WBR, Igor Evgrafov
Re[2]: Использование "Add Inherites Control"
От: Nameless51  
Дата: 12.02.05 10:02
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Ты не тот визард используешь. Этот используется для наследования user controls. Вышеперечисленные контролы таковыми не являются. Если очень хочется использовать колдуна то можно создать наследника button (как впрочем и любого другого на sealed класа) через мастера, доступного из class view. На проекте жмешь правую кнопку Add — Add Class. Заполняешь Class name потом на закладку Base class выбираешь namespace и base class в нем. Жмешь Finish.


GIV>Получается что то такое


GIV>
GIV>using System;

GIV>namespace WindowsApplication2
GIV>{
GIV> /// <summary>
GIV> /// 
GIV> /// </summary>
GIV> public class XXX : System.Windows.Forms.Button
GIV> {
GIV>  public XXX()
GIV>  {
GIV>   // 
GIV>   // TODO: Add constructor logic here
GIV>   //
GIV>  }
GIV> }
GIV>}

GIV>


GIV>По мне так все эти визарды нафиг не нужны. Руками быстрее получается особливо когда РеШарпер помогает.


GIV>WBR, Igor Evgrafov

Это понятно, что так можно сделать, но тогда теряется возможность использовать этот компонент в редакторе, а ради этого все и затевается. Может быть есть какой-нибудь другой способ добиться этого?
Re[3]: Использование "Add Inherites Control"
От: Igor Trofimov  
Дата: 12.02.05 14:17
Оценка:
N>Это понятно, что так можно сделать, но тогда теряется возможность использовать этот компонент в редакторе, а ради этого все и затевается.

Теряется возможность редактировать контрол в дизайнере или использовать в дизайнере?

Первое вроде как не особо нужно (например, делаешь потомок Button — ну чего там в дизайнере редактировать у нее?).
А если второе — то в чем проблема? Надо просто добавить контрол на toolbox через popup-меню.
Re[4]: Использование "Add Inherites Control"
От: Nameless51  
Дата: 14.02.05 04:55
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:


iT>Теряется возможность редактировать контрол в дизайнере или использовать в дизайнере?


iT>Первое вроде как не особо нужно (например, делаешь потомок Button — ну чего там в дизайнере редактировать у нее?).

iT>А если второе — то в чем проблема? Надо просто добавить контрол на toolbox через popup-меню.
Я так и знал, что вопрос глупый. Спасибо всем отвечавшим. Все стало ясно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.