using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Text; 
 | 
using System.Windows.Forms; 
 | 
using System.Drawing; 
 | 
  
 | 
namespace Pub_Class 
 | 
{ 
 | 
    /// <summary> 
 | 
    /// 单网格可编辑 (除单据和列表) 
 | 
    /// </summary> 
 | 
    public class ClsGridViewFun 
 | 
    { 
 | 
        public DataGridView ogrdMain = new DataGridView();   
 | 
        private string sAllowEdit;//可编辑列  
 | 
        public bool EditStatus; 
 | 
        public bool DisplayNoCol;//是否显示 序号列 
 | 
        public Int32 NoCol;//序号列 
 | 
        public bool Changelock; 
 | 
        public string KeyItem; 
 | 
        public bool NotAllowADDRow; 
 | 
        public bool NotAllowDELRow; 
 | 
        public char chr = Convert.ToChar(","); 
 | 
         
 | 
          
 | 
        //建立 可编辑列 
 | 
        public void  BuildAllowEditCols(string[] Cols) 
 | 
        { 
 | 
            Int64 i; 
 | 
            string tStr; 
 | 
            tStr = ""; 
 | 
            for (i = 0; i < Cols.Length; i++) 
 | 
            { 
 | 
                if (i == 0) 
 | 
                { 
 | 
                    tStr = Cols[i]; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    tStr = tStr + "," + Cols[i]; 
 | 
                } 
 | 
            } 
 | 
            sAllowEdit= tStr; 
 | 
        } 
 | 
  
 | 
        
 | 
        //列是否允许编辑 
 | 
        public bool FindAllowEditCol(Int64 Col) 
 | 
        { 
 | 
            Int64 i; 
 | 
            string[] s; 
 | 
            if (sAllowEdit.Trim() == "") 
 | 
                return false; 
 | 
            s=sAllowEdit.Split(chr ); 
 | 
            for(i=0;i<=s.Length-1;i++) 
 | 
            { 
 | 
                if(Col==ClsPub.isInt(s[i])) 
 | 
                    return true; 
 | 
            } 
 | 
            return false; 
 | 
        } 
 | 
  
 | 
        //增行 
 | 
        public void Sub_AddRow() 
 | 
        {  
 | 
            if (ogrdMain.CurrentRow==null  ) 
 | 
            { 
 | 
                ogrdMain.Rows.Add(); 
 | 
                return; 
 | 
            } 
 | 
            if (GetNullRows() < 1) 
 | 
            {  
 | 
                ogrdMain.Rows.Insert(ogrdMain.CurrentRow.Index,1); 
 | 
                if (ogrdMain.CurrentRow.Index != ogrdMain.RowCount-1) 
 | 
                { 
 | 
                    DisplayCurRow();  
 | 
                    RefreshNoCol(); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        //获得 NULL 行 
 | 
        public Int64 GetNullRows() 
 | 
        { 
 | 
            Int32 r, c; 
 | 
            Int32 lngRows; 
 | 
            lngRows = 0; 
 | 
            for (r = 0; r < ogrdMain.RowCount; r++) 
 | 
            { 
 | 
                if (ClsPub.isStrNull(ogrdMain.Rows[r].Cells[0].Value) == "*") 
 | 
                { 
 | 
                    if (DisplayNoCol == true) 
 | 
                    { 
 | 
                        for (c = NoCol + 1; c < ogrdMain.ColumnCount; c++) 
 | 
                        { 
 | 
                            if (ClsPub.isStrNull(ogrdMain.Rows[r].Cells[c].Value) != "") 
 | 
                            { 
 | 
                                break; 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        for (c = 1; c < ogrdMain.ColumnCount; c++) 
 | 
                        { 
 | 
                            if (ClsPub.isStrNull(ogrdMain.Rows[r].Cells[c].Value) != "") 
 | 
                            { 
 | 
                                break; 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                    if (c == ogrdMain.ColumnCount) 
 | 
                        lngRows = lngRows + 1; 
 | 
                } 
 | 
            } 
 | 
            return lngRows; 
 | 
        } 
 | 
  
 | 
        //删除行 
 | 
        public void Sub_DelRow() 
 | 
        { 
 | 
            int Scqwghz; //原选中行 
 | 
            int Scqwglz; //原选中列 
 | 
       
 | 
            Scqwghz = ogrdMain.CurrentRow.Index; 
 | 
            Scqwglz = ogrdMain.CurrentCell.ColumnIndex;  
 | 
            DisplayCurRow(); 
 | 
            Changelock = true;  
 | 
            Changelock = false; 
 | 
             
 | 
            ogrdMain.CurrentRow.DefaultCellStyle.BackColor = Color.Red; 
 | 
            if (MessageBox.Show( "确定要删除当前记录?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) 
 | 
            { 
 | 
                ogrdMain.CurrentRow.DefaultCellStyle.BackColor = Color.White; 
 | 
                Changelock = true;  
 | 
                Changelock = false; 
 | 
                return; 
 | 
            } 
 | 
            ogrdMain.Rows.RemoveAt(ogrdMain.CurrentRow.Index); 
 | 
            ogrdMain.Rows.Add(); 
 | 
            Changelock = true;  
 | 
            Changelock = false; 
 | 
            RefreshNoCol();  
 | 
            EditStatus = false; 
 | 
        } 
 | 
  
 | 
         
 | 
        //显示当前行 
 | 
        public void DisplayCurRow() 
 | 
        { 
 | 
            Int64 Toprowte; 
 | 
            Toprowte = 0; 
 | 
        } 
 | 
  
 | 
         
 | 
        //刷新行号 
 | 
        public void RefreshNoCol() 
 | 
        { 
 | 
            int  i, m;  
 | 
            i = 0; 
 | 
            m = 0; 
 | 
            for (i = 0; i < ogrdMain.RowCount; i++) 
 | 
            { 
 | 
                m = m + 1; 
 | 
                ogrdMain.Rows[i].Cells[NoCol].Value = m.ToString().Trim(); 
 | 
            } 
 | 
            ogrdMain.Columns[NoCol].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; 
 | 
        } 
 | 
        // 
 | 
    } 
 | 
} 
 |