Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Exposing class properties for design time use

Exposing class properties for design time use

Scheduled Pinned Locked Moved C#
questiondesign
14 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K kanchoette

    If I have a class:

    public class Column
    {

            private int \_columnWidth;
            
        \[Category("Columns")\]
        
        public int ColumnWidth
            {
                get { return \_columnWidth; }
                set { \_columnWidth = value; }
            }
        }
    

    How can I expose the property 'ColumnWidth' for design time use please?

    O Offline
    O Offline
    Omekudo Odafe Kingsley
    wrote on last edited by
    #2

    Hi all, I also have the same issues if anyone can help he/she forward the answer to my e-mail address:omekings2000@yahoo.co.uk cos am currently building a project at hand now.

    1 Reply Last reply
    0
    • K kanchoette

      If I have a class:

      public class Column
      {

              private int \_columnWidth;
              
          \[Category("Columns")\]
          
          public int ColumnWidth
              {
                  get { return \_columnWidth; }
                  set { \_columnWidth = value; }
              }
          }
      

      How can I expose the property 'ColumnWidth' for design time use please?

      U Offline
      U Offline
      User 4467139
      wrote on last edited by
      #3

      use browsable attribute. [BrowsableAttribute(true)]

      K 1 Reply Last reply
      0
      • U User 4467139

        use browsable attribute. [BrowsableAttribute(true)]

        K Offline
        K Offline
        kanchoette
        wrote on last edited by
        #4

        Nice thought. But, however, this did not work for me.

        M U 2 Replies Last reply
        0
        • K kanchoette

          Nice thought. But, however, this did not work for me.

          M Offline
          M Offline
          moon_stick
          wrote on last edited by
          #5

          Works for me - [System.ComponentModel.Browsable(true)]

          It definitely isn't definatley

          K 1 Reply Last reply
          0
          • M moon_stick

            Works for me - [System.ComponentModel.Browsable(true)]

            It definitely isn't definatley

            K Offline
            K Offline
            kanchoette
            wrote on last edited by
            #6

            That's interesting. Mmm ... so in the code shown below, exactly where are you inserting the [System.ComponentModel.Browsable(true)] please?

            using System;
            using System.Collections.Generic;
            using System.ComponentModel;
            using System.Diagnostics;
            using System.Linq;
            using System.Text;
            using System.Windows.Forms;

            namespace MultiColumnComboBox
            {

            public partial class MultiColumnComboBox : ComboBox
            {
                
                public class Column
                {
                    private bool \_autoWidth = true;
                    private int \_columnWidth;
            
                   
                    public bool AutoWidth
                    {
                        get { return \_autoWidth; }
                        set { \_autoWidth = value; }
                    }
                    
                    public int ColumnWidth
                    {
                        get { return \_columnWidth; }
                        set { \_columnWidth = value; }
                    }
                }
                
                public MultiColumnComboBox()
                {
                    InitializeComponent();
                }
            
                public MultiColumnComboBox(IContainer container)
                {
                    container.Add(this);
            
                    InitializeComponent();
                }
            }
            

            }

            M 1 Reply Last reply
            0
            • K kanchoette

              That's interesting. Mmm ... so in the code shown below, exactly where are you inserting the [System.ComponentModel.Browsable(true)] please?

              using System;
              using System.Collections.Generic;
              using System.ComponentModel;
              using System.Diagnostics;
              using System.Linq;
              using System.Text;
              using System.Windows.Forms;

              namespace MultiColumnComboBox
              {

              public partial class MultiColumnComboBox : ComboBox
              {
                  
                  public class Column
                  {
                      private bool \_autoWidth = true;
                      private int \_columnWidth;
              
                     
                      public bool AutoWidth
                      {
                          get { return \_autoWidth; }
                          set { \_autoWidth = value; }
                      }
                      
                      public int ColumnWidth
                      {
                          get { return \_columnWidth; }
                          set { \_columnWidth = value; }
                      }
                  }
                  
                  public MultiColumnComboBox()
                  {
                      InitializeComponent();
                  }
              
                  public MultiColumnComboBox(IContainer container)
                  {
                      container.Add(this);
              
                      InitializeComponent();
                  }
              }
              

              }

              M Offline
              M Offline
              moon_stick
              wrote on last edited by
              #7

              As an attribute on the property - in my code: [System.ComponentModel.Browsable(true)] public string DataItemLabelTitle { get { return this.lblDataItem.Text; } set { this.lblDataItemText = value; } }

              It definitely isn't definatley

              K 1 Reply Last reply
              0
              • M moon_stick

                As an attribute on the property - in my code: [System.ComponentModel.Browsable(true)] public string DataItemLabelTitle { get { return this.lblDataItem.Text; } set { this.lblDataItemText = value; } }

                It definitely isn't definatley

                K Offline
                K Offline
                kanchoette
                wrote on last edited by
                #8

                Yes, this works for me in your context. But when the property is contained within my class 'Column' it fails. Any ideas would be much appreciated.

                M 1 Reply Last reply
                0
                • K kanchoette

                  Yes, this works for me in your context. But when the property is contained within my class 'Column' it fails. Any ideas would be much appreciated.

                  M Offline
                  M Offline
                  moon_stick
                  wrote on last edited by
                  #9

                  When you place an instance of your combo box onto the designer window, the Property pane shows the browsable properties of that object. Your 'Column' class isn't a property - it isn't even an instance. What exactly are you expecting to see here? By entering a value in the property pane, what behaviour are you expecting?

                  It definitely isn't definatley

                  K 1 Reply Last reply
                  0
                  • M moon_stick

                    When you place an instance of your combo box onto the designer window, the Property pane shows the browsable properties of that object. Your 'Column' class isn't a property - it isn't even an instance. What exactly are you expecting to see here? By entering a value in the property pane, what behaviour are you expecting?

                    It definitely isn't definatley

                    K Offline
                    K Offline
                    kanchoette
                    wrote on last edited by
                    #10

                    I was expecting to see the additional properties 'AutoWidth' and 'ColumnWidth'.

                    M 1 Reply Last reply
                    0
                    • K kanchoette

                      Nice thought. But, however, this did not work for me.

                      U Offline
                      U Offline
                      User 4467139
                      wrote on last edited by
                      #11

                      [Message Deleted]

                      K 1 Reply Last reply
                      0
                      • U User 4467139

                        [Message Deleted]

                        K Offline
                        K Offline
                        kanchoette
                        wrote on last edited by
                        #12

                        I am creating a custom control.

                        1 Reply Last reply
                        0
                        • K kanchoette

                          I was expecting to see the additional properties 'AutoWidth' and 'ColumnWidth'.

                          M Offline
                          M Offline
                          moon_stick
                          wrote on last edited by
                          #13

                          You missed the point I was making - you can only display and change the properties for an instance of a class. What you're asking to do doesn't make any real sense.

                          It definitely isn't definatley

                          K 1 Reply Last reply
                          0
                          • M moon_stick

                            You missed the point I was making - you can only display and change the properties for an instance of a class. What you're asking to do doesn't make any real sense.

                            It definitely isn't definatley

                            K Offline
                            K Offline
                            kanchoette
                            wrote on last edited by
                            #14

                            Your are right (of course). I realise my error now that I have had another jolt of coffee. Thanks for your patience. Mondays ..... :-O

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • World
                            • Users
                            • Groups