我在数据库中存的是0,1,2三种状态,Form上有DataGridView,在DataGridView一列是Combox的,Combox在属性中的Items是停用,正常,暂停,我怎么实现读出0时,前台Combox自己显示的是停用,1是显示正常,2显示暂停。
   DataGridView中的TextBox怎么只能让他输入数字。谢谢

解决方案 »

  1.   

    如果數據庫保存0,1,2,但並沒有基礎資料表來和0,1,2對應。隻是在程序裡轉換的話,我是這樣做的
      private void dgvOvertimeMaster_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                string CheckStates = dgvOvertimeMaster.Rows[e.RowIndex].Cells["CheckState"].Value.ToString();//數據庫的數據,隱藏            switch (CheckStates)
                {
                    case "0"://SCheckStates 顯示的列
                        dgvOvertimeMaster.Rows[e.RowIndex].Cells["SCheckStates"].Value = "0-停用";
                        break;
                    case "1":
                        dgvOvertimeMaster.Rows[e.RowIndex].Cells["SCheckStates"].Value = "1-正常";
                        break;
                    case "2":
                        dgvOvertimeMaster.Rows[e.RowIndex].Cells["SCheckStates"].Value = "2-暂停";
                        break;              
                }
            }
      

  2.   

    你需要一个继承TypeConvertAttribute的自定义属性类。由这个类来完成数据的转换。具体的代码太长,等会儿再传上来。
      

  3.   

    手工设计一个DataTable,里面有三行,分别是
    id name
    0  停用
    1  正常
    2  暂停
    将这一个列(DataGridViewComboBoxColumn)的DataSource设成该Table并指定ValueMember为id,DisplayMember是name
    直接绑定数据源就搞一啦~
      

  4.   

    一个简单的方法是:
    默认combobox.selectedindex=-1;
    然后combobox.selectedindexchanged事件中处理当selectedindex=0时,combobox.text="停用"