DataGridView使用 --转载

  • 设置数字显示格式
    数据库中是Numeric(38,6)类型,显示到DataGridView界面上后面始终有6个0(如:20000.000000),想要仅仅显示整数,一阵好找,但是没有发现详细的文档注释,有的在格式化字符串中加上#符号(如:##.##),不知道是干嘛。可以如此操作。
      DataGridView dgvDiscipline=this[ivcDiscipline] as DataGridView;
      dgvDiscipline.Columns["anticipatingIncome"].DefaultCellStyle.Format="0";

界面即显示整数了。如果还想以千分位进行显示(如:2755555.000000000需要显示为2,755,555.0000)。可以设置DataGridView的DefaultCellStyle属性为“N4”,N代表以千分位显示,N后的数字表示小数点后保留几位。仅作为抛砖引玉。如下代码所示:

      DataGridView dgvDiscipline=this[ivcDiscipline] as DataGridView;
      dgvDiscipline.Columns["anticipatingIncome"].DefaultCellStyle.Format="N4"


  • DataGridView控制单元格只读。“proofComment”为列名,row为行号。 
dgv["proofComment",row].ReadOnly = false;
  • 设置列头字体颜色
      DataGridViewCellStyle style = new DataGridViewCellStyle();
      style.ForeColor = System.Drawing.Color.Red;
      string[] NotNullCol=NotNullColumns.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries);
      foreach (DataGridViewColumn col in dgv.Columns)
      {
        foreach(string colName in NotNullCol)
        {
          if(colName==col.Name)
          {
            col.HeaderCell.Style = style;
          }
        }
      }
      dgv.EnableHeadersVisualStyles = false;

实际使用例子:

  /// <summary>
        /// 数据表中字段的小数位数截取
        /// </summary>
        /// <param name="dt"></param>
        public virtual void DataMathRound(ref DataTable dt)
        {

            foreach (DataRow drFld in dtFld.Rows)
            {
                string fldCode = ModelLib.Convert.ConvertString(drFld["fldCode"]);
                if (dt.Columns.Contains(fldCode) == false) continue;
                string sDigits = ModelLib.Convert.ConvertString(drFld["numscale"]);
                if (string.IsNullOrEmpty(sDigits)) sDigits = "6";
                int digits = ModelLib.Convert.ConvertInt(sDigits);
                foreach (DataRow drData in dt.Rows)
                {
                    Single dValue = ModelLib.Convert.ConvertSingle(drData[fldCode]);
                    ModelLib.Convert.MathRound(ref dValue, digits);
                    drData[fldCode] = dValue;
                }
            }
        }
        /// <summary>
        /// 获取字段的小数位数
        /// </summary>
        /// <param name="tblCode"></param>
        /// <param name="fldCode"></param>
        /// <returns></returns>
        public int getFieldScale(string tblCode, string fldCode)
        {
            int digits = 6;
    DataTable dtFld = bllFld.GetData("tblCode='" + tblCode + "' and fldCode='" + fldCode +"' and ( fldType='Number')");
            if (dtFld.Rows.Count == 0)
            {
                digits = 0;
            }
            else
            {
                string sDigits = ModelLib.Convert.ConvertString(dtFld.Rows[0]["numscale"]);
                if (string.IsNullOrEmpty(sDigits)) sDigits = "6";
                digits = ModelLib.Convert.ConvertInt(sDigits);
            }           
            return digits;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值