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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • goland2021 破解激活码[在线序列号]

    goland2021 破解激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    266
  • Linux之netstat命令详解

    Linux之netstat命令详解netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。TCP连接状态详解LISTEN:侦听来自远方的TCP端口的连接请求 SYN-SENT:再发送连接请求后等待匹配的连接请求 SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认 ESTABLISHED:代表一个打开的连接 FIN-WA.

    2022年5月30日
    37
  • 网络传输的两种方式——同步传输和异步传输的区别[通俗易懂]

    网络传输的两种方式——同步传输和异步传输的区别[通俗易懂]在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收数据,否则会产生误差。通常可以采用同步或异步的传输方式对位进行同步处理。1.异步传输(AsynchronousTransmission):异步传输…

    2022年4月19日
    273
  • 外贸英文外链代发布

    外贸英文外链代发布  能进来看到这篇文章,就说明大家都是有发布英文seo外链需求的人,平时比较忙,一个人忙不过来,没有时间发外链,或者自己外链资源太少,外链质量不高,网站总是没人气,没订单怎么办,这时候我们出现了,mmoboy专业团队,提供优质的英文外链服务:  通过人工注册博客、论坛、新闻等站点回复留言,把网站推广出去,制造手工的回复式外部链接。提高你的网站客户IP流量,增加网站的反向链接和google的收录…

    2022年5月17日
    43
  • x86汇编–0.资料汇总[通俗易懂]

    x86汇编–0.资料汇总[通俗易懂]x86汇编–资料汇总1书籍2网站3博客参考1书籍《汇编语言》[王爽]《80×86汇编语言程序设计教程》[杨季文]《MASM程序指南》《Intel指令列表》《TheArtofAssemblyLanguage》2网站汇编网x86汇编小站3博客x86汇编语言笔记(全)(长文警告)王爽《汇编语言》笔记(详细)汇编入门(长文多图,流量慎入)参考1、汇编资料整理2、整理的汇编工具、汇编网站和汇编教学平台总结3、汇编学习软件推荐-汇编金手指.

    2022年10月13日
    4
  • springboot实现ajax跨域请求

    springboot实现ajax跨域请求有段时间没写文章了。看到有人提问ajax跨域请求的问题。博主要再次强调,跨域,就是从不同的的IP端口获取数据,比如说,从www.baidu.com获取数据,就叫跨域!那么localhost:8080与localhost:8081之间呢?也叫跨域。如果处理的不好,就会报错,不仅前端报错,后端也会报错。那么如何解决呢?着急的人,请直接往下看,不急的请听我细细道来,一定能解决您的问题。我再此保证

    2022年6月17日
    39

发表回复

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

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