2010-03-14 13 views
0

Je construis un contrôle de panneau Web personnalisé pour un usage spécifique. Je veux que le contrôle soit fixé avec une largeur et une hauteur spécifiques afin de ne pas être redimensionné en mode design ou depuis la fenêtre de propriétés. Comment puis-je faire ceci.Comment créer un contrôle de serveur personnalisé non redimensionnable

Il est très important et urgent. J'apprécierai si vous pouvez m'aider.

Répondre

1

Essayez ceci:

contrôle Designer

public class CustomPanelDesigner : ControlDesigner 
{ 

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

} 

contrôle personnalisé

[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 regardait this.For la fenêtre de propriété fonctionne également bien, mais vous devez définir la largeur et la hauteur dans le constructeur comme @slugster l'a fait. – wonde

1

Si vous faites hériter votre usercontrol de System.Web.UI.WebControls.WebControl, vous pouvez remplacer les propriétés height et width et ne rien faire dans le setter.

donc j'ai créé un nouveau contrôle, ont appelé zzz, et a changé son héritage de System.Web.UI.UserControl-System.Web.UI.WebControls.WebControl. Après cela, c'est ce que mon code ressemble derrière comme:

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 - Eh bien, j'ai essayé de cette façon.Mais encore le contrôle Ce que j'ai besoin maintenant est une taille fixe non redimensionnable au moment du design ainsi que de la fenêtre de propriété. Trouver. – wonde

Questions connexes