none
如何在程式內,直接給DataGridViewComboBoxColumn的下拉選單內容? RRS feed

  • 一般討論

  • 首先我自訂ComboData物件


    public class ComboData
            {
                private string m_display = string.Empty;
                private string m_value = string.Empty;

                public ComboData(string display, string value)
                {
                    m_display = display;
                    m_value = value;
                }
                public string Display
                {
                    get { return m_display; }
                    set { m_display = value; }
                }
                public string Value
                {
                    get { return m_value; }
                    set { m_value = value; }
                }
            }

    --------------------------------------------------

     private void Form1_Load(object sender, EventArgs e)
            {
                string str = string.Empty;

                if (!this.naviDataGridView1.Columns.Contains("INTYP"))
                {
                    DataGridViewComboBoxColumn cbo = new DataGridViewComboBoxColumn();
                    DataGridViewComboBoxCell cell1 = new DataGridViewComboBoxCell();

                    //將ComboBox下拉式選單的內容儲存到自訂類別中
                    cell1.Items.Add(new ComboData("材料", "5"));
                    cell1.Items.Add(new ComboData("附件", "9"));

                    //指定DisplayMember及ValueMember要Binding自訂類別中的哪一個屬性
                    cell1.DisplayMember = "Display";
                    cell1.ValueMember = "Value";
                    cell1.MaxDropDownItems = 12;
                    cell1.DropDownWidth = 10;
                    cell1.Sorted = true;
                    cell1.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
                    cell1.AutoComplete = true;

                    cbo.CellTemplate = cell1;
                    cbo.HeaderText = "類別";
                    naviDataGridView1.Columns.Add(cbo);
                    naviDataGridView1.Columns[2].DisplayIndex = 0;

                }

    }

    但是畫面上還是帶不出我Display的值....就只有一個空的ComboData而已

    請問各位我是否哪裡寫錯了呢? 謝謝

     

     

    2010年7月28日 上午 05:53

所有回覆

  • 換個方法看看, 直接用DataSource:

    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            public class ComboData
            {
                private string m_display = string.Empty;
                private string m_value = string.Empty;

                public ComboData(string display, string value)
                {
                    m_display = display;
                    m_value = value;
                }
                public string Display
                {
                    get { return m_display; }
                    set { m_display = value; }
                }
                public string Value
                {
                    get { return m_value; }
                    set { m_value = value; }
                }
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                List<ComboData> myList = new List<ComboData>();
                myList.Add(new ComboData("材料", "5"));
                myList.Add(new ComboData("附件", "9"));
                DataGridViewComboBoxColumn Col0 = new DataGridViewComboBoxColumn();
                Col0.HeaderText = "測測看";
                dataGridView1.Columns.Add(Col0);
                ((DataGridViewComboBoxColumn)dataGridView1.Columns[0]).DataSource = myList;
                   ((DataGridViewComboBoxColumn)dataGridView1.Columns[0]).DisplayMember = "Display";
                   ((DataGridViewComboBoxColumn)dataGridView1.Columns[0]).ValueMember = "Value";

            }
        }


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年7月28日 上午 06:30
    版主
  • Bill Chung:

    還是一樣的狀況耶...還有其他的方法嗎?

    好奇怪喔...看網路上大家的討論好像都是這樣的寫法...可是就是無法順利產生出來

    請問如果我透過程式產生的話,還需要再DataGridView內建立一個 ComboBox的欄位嗎?

    2010年7月28日 上午 07:12
  • 何謂透過程式產生 ? 這點我看不太懂.
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年7月28日 上午 07:27
    版主