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;
|
}
|
//
|
}
|
}
|