DataGridView控件添加鼠标选定ToolTip显示合计
[csharp]/// <summary>
/// DataGridView多行选择求和
/// </summary>
/// <param name="myDataGridView">要求合计提示的DataGridView控件</param>
/// <param name="TooLar">传入的ToolTip控件.</param>
/// <returns></returns>
public bool DataGridViewSum(DataGridView myDataGridView, ToolTip TooLar)
{
if (myDataGridView.SelectedCells.Count < 2)
{
TooLar.RemoveAll();
return false;
}
//如果选择的单元格是全部,且大于:10000,则认为是不是求合计的操作
if (myDataGridView.SelectedCells.Count > 10000 && myDataGridView.SelectedCells.Count == myDataGridView.GetCellCount(DataGridViewElementStates.None))
{
TooLar.RemoveAll();
return false;
}
DataSet DS = new DataSet();
DataTable DtGroup = new DataTable("DtGroup");//保存列名
System.Collections.ArrayList NameMaxLength = new System.Collections.ArrayList();//保存DT中列名的长度
System.Collections.ArrayList ValueMaxLength = new System.Collections.ArrayList();//保存DT中列名的长度
DataTable DT = new DataTable("DT");//保存列名及数据
DtGroup.Columns.Add("ColumnName", System.Type.GetType("System.String"));//字段名
DT.Columns.Add("ColumnName", System.Type.GetType("System.String"));//字段名
DT.Columns.Add("ColumnValue", System.Type.GetType("System.Decimal"));//字段值
foreach (DataGridViewCell DC in myDataGridView.SelectedCells)
{
if (DC.ValueType.Name.ToLower() == "decimal" || DC.ValueType.Name.ToLower() == "int32")
{
DataRow DR;
DR = DT.NewRow();
DR["ColumnName"] = myDataGridView.Columns[DC.ColumnIndex].Name;
if (DC.Value == null)
{
DR["ColumnValue"] = 0;
}
else
{
DR["ColumnValue"] = DC.Value;
ValueMaxLength.Add(DC.Value.ToString().Length);
}
DT.Rows.Add(DR);
//在现有DtColName中查找是否包含了这个列名
if (DtGroup.Select("ColumnName='" + myDataGridView.Columns[DC.ColumnIndex].Name + "'").Length == 0)
{
DataRow DR1;
DR1 = DtGroup.NewRow();
DR1["ColumnName"] = myDataGridView.Columns[DC.ColumnIndex].Name;
DtGroup.Rows.Add(DR1);
NameMaxLength.Add(myDataGridView.Columns[DC.ColumnIndex].Name.Length);
}
}
}
DS.Tables.Add(DT);
&
补充:软件开发 , C# ,