Прошу прощения за наверное глупый вопрос, но все же. Как создать свой контрол, который бы расширял возможности другого стандартного, например 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"
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
//
}
}
}
По мне так все эти визарды нафиг не нужны. Руками быстрее получается особливо когда РеШарпер помогает.
Здравствуйте, GarryIV, Вы писали:
GIV>Ты не тот визард используешь. Этот используется для наследования user controls. Вышеперечисленные контролы таковыми не являются. Если очень хочется использовать колдуна то можно создать наследника button (как впрочем и любого другого на sealed класа) через мастера, доступного из class view. На проекте жмешь правую кнопку Add — Add Class. Заполняешь Class name потом на закладку Base class выбираешь namespace и base class в нем. Жмешь Finish.
GIV>Получается что то такое
GIV>
GIV>По мне так все эти визарды нафиг не нужны. Руками быстрее получается особливо когда РеШарпер помогает.
GIV>WBR, Igor Evgrafov
Это понятно, что так можно сделать, но тогда теряется возможность использовать этот компонент в редакторе, а ради этого все и затевается. Может быть есть какой-нибудь другой способ добиться этого?
N>Это понятно, что так можно сделать, но тогда теряется возможность использовать этот компонент в редакторе, а ради этого все и затевается.
Теряется возможность редактировать контрол в дизайнере или использовать в дизайнере?
Первое вроде как не особо нужно (например, делаешь потомок Button — ну чего там в дизайнере редактировать у нее?).
А если второе — то в чем проблема? Надо просто добавить контрол на toolbox через popup-меню.
iT>Теряется возможность редактировать контрол в дизайнере или использовать в дизайнере?
iT>Первое вроде как не особо нужно (например, делаешь потомок Button — ну чего там в дизайнере редактировать у нее?). iT>А если второе — то в чем проблема? Надо просто добавить контрол на toolbox через popup-меню.
Я так и знал, что вопрос глупый. Спасибо всем отвечавшим. Все стало ясно