111,098
社区成员




/// <summary>
/// 创建基于DataGridView文本控件
/// </summary>
/// <param name="TextName">对象Name</param>
/// <param name="HeaderCaption">对象HeaderText</param>
/// <param name="DataFieldName">对象DataPropertyName</param>
/// <returns></returns>
private static DataGridViewTextBoxColumn CreaTextBoxColumn(string TextName, string HeaderCaption, string DataFieldName, bool visible = true)
{
DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn()
{
Name = TextName,
HeaderText = HeaderCaption,
DataPropertyName = DataFieldName,
SortMode = DataGridViewColumnSortMode.NotSortable,
DefaultCellStyle = CellStyle(CellStyleState.textCellStyle),
ReadOnly = true,
Visible = visible
};
return column;
}
/// <summary>
/// 设定数据表样式
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
public static DataGridViewCellStyle CellStyle(CellStyleState state)
{
//文本单元格样式
DataGridViewCellStyle textCellStyle = new DataGridViewCellStyle
{
Alignment = DataGridViewContentAlignment.MiddleCenter,
BackColor = SystemColors.Window,
Font = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134),
ForeColor = SystemColors.ControlText,
SelectionBackColor = SystemColors.Highlight,
SelectionForeColor = SystemColors.HighlightText,
WrapMode = DataGridViewTriState.False
};
//行标题样式
DataGridViewCellStyle rowHeaderCellStyle = new DataGridViewCellStyle
{
Alignment = DataGridViewContentAlignment.MiddleCenter,
BackColor = SystemColors.Control,
Font = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134),
ForeColor = SystemColors.WindowText,
SelectionBackColor = SystemColors.Highlight,
SelectionForeColor = SystemColors.HighlightText,
WrapMode = DataGridViewTriState.False
};
//数值单元格样式
DataGridViewCellStyle decimalCellStyle = new DataGridViewCellStyle
{
Format = "N2"
};
//选中行样式
DataGridViewCellStyle changedCellStyle = new DataGridViewCellStyle
{
BackColor = Color.LightGray,
//ForeColor = Color.LightYellow,
SelectionBackColor = SystemColors.Highlight,
SelectionForeColor = SystemColors.HighlightText,
WrapMode = DataGridViewTriState.False
};
switch (state)
{
case CellStyleState.textCellStyle:
return textCellStyle;
case CellStyleState.rowHeaderCellStyle:
return rowHeaderCellStyle;
case CellStyleState.decimalCellStyle:
return decimalCellStyle;
case CellStyleState.changedCellStyle:
return changedCellStyle;
default:
return textCellStyle;
}
}
public static DataGridView InitDgvJobFace(ref DataGridView dgv)
{
DataGridView DgvJob = dgv;
//【BranJob】列初始化
DataGridViewCheckBoxColumn multiselect = CreateCheckColumn("multiselect", "选择");
DataGridViewTextBoxColumn id = CreaTextBoxColumn("id", "内码标识", "BranjobId", false);
DataGridViewComboBoxColumn jobna = CreateComboBoxColumn("jobna", "职位名称", "Jobno");
SetAlternateChoicesUsingItems(jobna);
DataGridViewTextBoxColumn planqty = CreaTextBoxColumn("planqty", "定编人数", "Planqty");
DataGridViewTextBoxColumn jobqty = CreaTextBoxColumn("jobqty", "实际人数", "Jobqty");
DataGridViewTextBoxColumn lackqty = CreaTextBoxColumn("lackqty", "欠缺人数", "Lackqty");
DataGridViewTextBoxColumn overtime = CreaTextBoxColumn("overtime", "固定加班小时", "Overtime");
overtime.DefaultCellStyle = CellStyle(CellStyleState.decimalCellStyle);
//添加到DataGridView对象
DgvJob.Columns.AddRange(new DataGridViewColumn[]
{
id,
jobna,
planqty,
jobqty,
lackqty,
overtime
});
//插入多选[列]
DgvJob.Columns.Insert(0, multiselect);
InitDgv(DgvJob);
return DgvJob;
}
[Flags]
public enum CellStyleState
{
textCellStyle = 0,
rowHeaderCellStyle = 1,
decimalCellStyle = 2,
changedCellStyle = 3
};
看不懂的话,再提问。