none
如何在PropertyGrid中顯示自訂的結構型別? RRS feed

  • 問題

  • Hi, everyone
        我想要在PropertyGrid上顯示自訂結構的內容,好讓user去修改數值。
    但試不出結果來,在PropertyGrid中,自訂結構都只有顯示結構的名稱,
    而無法顯示出結構內的變數值。請問該怎麼修改?謝謝。

    以下是範例程式。

    namespace PropertyGridTest
    {
      public class PropertyData
      {
        public struct stData
        {
          double dA;
          int iB;
          bool bC;

          public stData(double a, int b, bool c)
          {
            this.dA = a;
            this.iB = b;
            this.bC = c;
          }
         
          public double AA
          {
            get { return dA; }
            set { dA = value; }
          }
          public int BB
          {
            get { return iB; }
            set { iB = value; }
          }
          public bool CC
          {
            get { return bC; }
            set { bC = value; }
          }
        };

        bool m_bAA = false;
        string[] m_strBB = new string[] { "ABC", "DEF"};
        stData m_stData = new stData(0.11, -1, true);
        Point m_PT = new Point(2, 1);
       
        public PropertyData()
        {

        }

        public Point myPoint
        {
          get { return m_PT; }
          set { m_PT = value; }
        }   

        public stData data
        {
          get { return m_stData; }
          set { m_stData = value; }
        }
         public bool AA
        {
          get { return m_bAA; }
          set { m_bAA = value; }
        }
        public string[] BB
        {
          get { return m_strBB; }
          set { m_strBB = value; }
        }
       

      };

      public partial class Form1 : Form
      {
        PropertyData m_Data = new PropertyData();

        public Form1()
        {
          InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
          PropertyGrid grid = new PropertyGrid();
          grid.SelectedObject = m_Data;
          grid.Parent = this.tabPage1;
          grid.Dock = DockStyle.Fill;
        }
      }
    }
    2007年5月18日 上午 02:25

所有回覆

  • 看來應該是很難,或者是無解吧。
    不過我找到可替的方案,給的大家參考一下囉。
    http://www.codeproject.com/vb/net/PropertyGridEx.asp

    2007年5月31日 上午 02:29