2010-03-14 3 views
0

Я создаю настраиваемый элемент управления веб-панелью для определенной цели. Я хочу, чтобы элемент управления фиксировался с определенной шириной и высотой, чтобы не изменять размер в режиме разработки, а также из окна свойств. Как я могу это сделать.Как создать нерегулируемый пользовательский серверный контроль

Это очень важно и срочно. Я буду признателен, если вы можете мне помочь.

ответ

1

Попробуйте это:

Дизайнер управления

public class CustomPanelDesigner : ControlDesigner 
{ 

    public override bool AllowResize 
    { 
     get { return false; } 
    } 

} 

пользовательского элемента управления

[Designer(typeof(CustomPanelDesigner))] 
public class CustomPanel : WebControl 
{ 

    public CustomPanel() : base(HtmlTextWriterTag.Div) { } 

    [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] 
    public override Unit Width 
    { 
     get { return new Unit("100px"); } 
     set { throw new NotSupportedException(); } 
    } 

    [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] 
    public override Unit Height 
    { 
     get { return new Unit("100px"); } 
     set { throw new NotSupportedException(); } 
    } 

} 
+0

Perfect.I смотрел это. Для окна свойств также отлично работает, но вы должны установить ширину и высоту в конструкторе, как это сделал @slugster. – wonde

1

Если вы наследуете usercontrol от System.Web.UI.WebControls.WebControl, вы можете переопределить свойства высоты и ширины и ничего не делать в сеттере.

Так я создал новый элемент управления, называется его zzz, и изменила свое наследство от System.Web.UI.UserControl к System.Web.UI.WebControls.WebControl. После этого, это то, что мой код позади выглядит следующим образом:

public partial class zzz : WebControl 
{ 
    public zzz() 
    { 
     base.Height = new Unit(100, UnitType.Pixel); 
     base.Width = new Unit(150, UnitType.Pixel); 
    } 

    public override Unit Height 
    { 
     get { return base.Height; } 
     set { } 
    } 

    public override Unit Width 
    { 
     get { return base.Width; } 
     set { } 
    } 
} 
+0

@Slugster - Ну, я пробовал этот путь. Но все-таки контроль resizable.Что мне сейчас нужно - это фиксированный размер, не изменяемый во время разработки, а также из окна свойств. Возьми. – wonde

Смежные вопросы