gridview属性_datagridview设置列宽

gridview属性_datagridview设置列宽usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Drawing;usingSystem.Windows.Forms;classSetDataViewGirdStyle{   privatestaticColor_mLinearBeginColor;

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Forms;

class SetDataViewGirdStyle
{

    private static Color _mLinearBeginColor;
    private static Color _mLinearEndColor;
    private static Color _mBorderColor;
    private static bool _IsDrawing2D;

    public SetDataViewGirdStyle()
    { }

    /// <summary>
    /// 设置DataGirdView显示颜色
    /// </summary>
    /// <param name=”dgv”>目标DataGirdView对象</param>
    /// <param name=”BackgroundColor”>DataGirdView背景色</param>
    /// <param name=”SelectionBackColor”>选定行的背景色</param>
    /// <param name=”SelectionForeColor”>选定行的前景色</param>
    /// <param name=”CellSelectionBackColor”>单元格被选定时的背景色</param>
    /// <param name=”RowBackColor”>默认行背景色</param>
    /// <param name=”ImparRowBackColor”>默认奇数行背景色</param>
    /// <param name=”IsDrawRowHeaders”>是否绘制行标题颜色</param>
    /// <param name=”IsDrawing2D”>是否启用二维绘制行标题颜色(渐变色)</param>
    /// <param name=”mLinearBeginColor”>渐变色起始颜色</param>
    /// <param name=”mLinearEndColor”>渐变色结束颜色</param>
    /// <param name=”mBorderColor”>边框颜色</param>
    public static void SetDgvViewColor(DataGridView dgv, Color BackgroundColor,
                                Color SelectionBackColor, Color SelectionForeColor,
                                Color CellSelectionBackColor, Color RowBackColor,
                                Color ImparRowBackColor, bool IsDrawRowHeaders,
                                bool IsDrawing2D, Color mLinearBeginColor,
                                Color mLinearEndColor, Color mBorderColor)
    {

        dgv.BackgroundColor = BackgroundColor;
        dgv.DefaultCellStyle.SelectionBackColor = SelectionBackColor;
        dgv.DefaultCellStyle.SelectionForeColor = SelectionForeColor;
        dgv.RowHeadersDefaultCellStyle.SelectionBackColor = CellSelectionBackColor;
        dgv.RowsDefaultCellStyle.BackColor = RowBackColor;
        dgv.AlternatingRowsDefaultCellStyle.BackColor = ImparRowBackColor;
        if (IsDrawRowHeaders)
        {

            _mLinearBeginColor = mLinearBeginColor;
            _mLinearEndColor = mLinearEndColor;
            _mBorderColor = mBorderColor;
            _IsDrawing2D = IsDrawing2D;
            dgv.CellPainting += new DataGridViewCellPaintingEventHandler(dgv_CellPainting);
        }
    }

    private static void CellPainting(DataGridViewCellPaintingEventArgs e)
    {

        Color mLinearColor1 = _mLinearBeginColor;
        Color mLinearColor2 = _mLinearEndColor;
        Color mGridColor = _mBorderColor;

        System.Drawing.StringFormat StrFormat = new StringFormat();
        Rectangle Rect = new Rectangle(e.CellBounds.X – 1, e.CellBounds.Y, e.CellBounds.Width, e.CellBounds.Height – 1);
        System.Drawing.Drawing2D.LinearGradientBrush LinearGradientBrush = null;
        if (_IsDrawing2D)
        {

            LinearGradientBrush = new System.Drawing.Drawing2D.LinearGradientBrush(Rect, mLinearColor1, mLinearColor2, System.Drawing.Drawing2D.LinearGradientMode.Vertical);
        }
        else
        {

            LinearGradientBrush = new System.Drawing.Drawing2D.LinearGradientBrush(Rect, mLinearColor1, mLinearColor1, System.Drawing.Drawing2D.LinearGradientMode.Vertical);
        }

        try
        {

            if (e.RowIndex == -1 || e.ColumnIndex == -1)
            {

                e.Graphics.FillRectangle(LinearGradientBrush, Rect);
                e.Graphics.DrawRectangle(new Pen(mGridColor), Rect);
                e.PaintContent(e.CellBounds);
                e.Handled = true;
            }
        }
        catch (Exception ex)
        {

            throw new Exception(ex.Message);
        }
        finally
        {

            if (StrFormat != null)
                StrFormat.Dispose();
            if (LinearGradientBrush != null)
                LinearGradientBrush.Dispose();
        }
    }

    private static void dgv_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
    {

        CellPainting(e);
    }

    /// <summary>
    /// 设置DataGirdView样式
    /// </summary>
    /// <param name=”dgv”>目标DataGirdView对象</param>
    /// <param name=”DockStyleType”>指定控键停靠的位置和方式</param>
    /// <param name=”BorderStyleType”>指定控键边框样式</param>
    /// <param name=”IsOrderCol”>指定用户是否可手动调整列位置</param>
    /// <param name=”IsReadOnly”>指定用户是否可编辑单元格</param>
    /// <param name=”IsMultiSelect”>指定用户是否可以选择多行</param>
    /// <param name=”IsResizeCol”>指定用户是否可以自己调整列大小(数据量大时请慎用)</param>
    /// <param name=”IsResizeRow”>指定用户是否可以自己调整行大小(数据量大时请慎用)</param>
    /// <param name=”IsRowHeaders”>是否显示行标题</param>
    /// <param name=”RowHeadersWidth”>行标题显示的宽度(当IsRowHeaders=True时HeadersWidth必须大于或等于4;当HeadersWidth大于或等于24时出现行标箭头)</param>
    /// <param name=”RowCopy”>行值复制模式</param>
    /// <param name=”IsShowIndex”>是否在行标题显示序号</param>
    public static void SetDgvViewStyle(DataGridView dgv, DockStyle DockStyleType,
                                BorderStyle BorderStyleType, bool IsOrderCol,
                                bool IsReadOnly, bool IsMultiSelect,
                                bool IsResizeCol, bool IsResizeRow,
                                bool IsRowHeaders, int RowHeadersWidth,
                                DataGridViewClipboardCopyMode RowCopy, bool IsShowIndex)
    {

        dgv.Dock = DockStyleType;
        dgv.BorderStyle = BorderStyleType;
        dgv.AllowUserToAddRows = false;
        dgv.AllowUserToDeleteRows = false;
        dgv.AllowUserToOrderColumns = IsOrderCol;
        dgv.ReadOnly = !IsReadOnly;
        dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        dgv.MultiSelect = IsMultiSelect;
        dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
        dgv.AllowUserToResizeColumns = IsResizeCol;
        if (IsResizeCol)
        {

            dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
        }
        else
        {

            dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
        }
        dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
        dgv.AllowUserToResizeRows = IsResizeRow;
        if (IsResizeRow)
        {

            dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
        }
        else
        {

            dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
        }
        dgv.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
        dgv.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing;
        dgv.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
        dgv.RowHeadersVisible = IsRowHeaders;
        if (dgv.RowHeadersVisible && RowHeadersWidth < 4)
        {

            throw new Exception(“RowHeadersWidth Error”);
        }
        dgv.RowHeadersWidth = RowHeadersWidth;
        dgv.ClipboardCopyMode = RowCopy;
        if (IsShowIndex)
            dgv.RowPostPaint += new DataGridViewRowPostPaintEventHandler(dgv_RowPostPaint);
    }

    private static void dgv_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
    {

        Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, ((DataGridView)sender).RowHeadersWidth, e.RowBounds.Height);
        TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), ((DataGridView)sender).RowHeadersDefaultCellStyle.Font, rectangle, ((DataGridView)sender).RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190012.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月4日 上午11:22
下一篇 2026年3月4日 下午12:01


相关推荐

  • win10自带恶意软件删除工具

    win10自带恶意软件删除工具win+R—>mrt回车点击下一步启动工具待完成后即检测完毕

    2022年6月24日
    38
  • 图片懒加载原理「建议收藏」

    /**图片的懒加载*只有当页面滚动到图片位置显示的时候才去加载图片;一开始图片的位置可以方一张小的默认图*优势:提升页面的加载速度*在移动端省流量;**实现的原理:监听页面滚动;当页面滑倒图片位置的时候,再去让图片显示(图片的src换成真正的链接);**//**需求:当页…

    2022年4月16日
    46
  • Linux下网络测试工具tcpping、tcptraceroute的使用

    Linux下网络测试工具tcpping、tcptraceroute的使用Linux 下网络测试工具 tcpping tcptracerout 的使用

    2026年1月28日
    2
  • 小程序:解析h5标签

    小程序:解析h5标签1 场景小程序中 从后台请求回来的数据 是带标签的 应该是富文本自动生成的 2 目的去掉标签 3 方法 1 原先的代码 textclass nodes htInfo forum content 2 修改为 textclass nodes htInfo forum content

    2025年9月4日
    4
  • 如何升级PIP命令

    如何升级PIP命令1、首先使用pipshowpip命令查看当前pip版本;2、升级命令:python-mpipinstall–upgradepip;3、验证升级成功,再次使用pipshowpip命令查看pip版本。

    2022年6月11日
    176
  • SparkSQL简介

    SparkSQL简介注 该系列文章以及使用到安装包 测试数据可以在 倾情大奉送 Spark 入门实战系列 获取 1 SparkSQL 的发展历程 1 1 nbsp HiveandShark 的前身是 Shark 给熟悉 RDBMS 但又不理解 MapReduce 的技术人员提供快速上手的工具 Hive 应运而生 它是当时唯一运行在 Hadoop 上的 SQL on Hadoop 工具 但是 MapReduce 计算过程

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号