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


相关推荐

  • 用户名与计算机名命名规则

    用户名与计算机名命名规则

    2021年7月27日
    199
  • Java中executeUpdate和executeQuery的区别

    Java中executeUpdate和executeQuery的区别executeQueryexecuteQuery()方法是在PreparedStatement对象中执行SQL查询,并返回该查询生成的ResultSet对象,executeUpdate该方法是在PreparedStatement对象中执行SQL语句,该语句必须是一个SQL数据操作语言,例如INSERT,UPDATE,DELETE等语句,或者是没有返回内容的SQL语句….

    2022年10月20日
    1
  • install 945GM drivers ubuntu

    install 945GM drivers ubuntu

    2021年5月1日
    181
  • jmeter性能测试步骤入门_jmeter接口性能测试

    jmeter性能测试步骤入门_jmeter接口性能测试原文转自:https://blog.csdn.net/lovesoo/article/details/78579547ApacheJMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。本文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整…

    2022年10月4日
    1
  • 串口助手(简洁版)上位机软件零基础教程( C# + visual studio2017 )(二)

    串口助手(简洁版)上位机软件零基础教程( C# + visual studio2017 )(二)在上篇博客中,我们完成了串口助手(简洁版)可视化窗体的设计,并且单击启动后可以运行。但是光有外壳,没有灵魂。所以接下来我们将继续一步一步来编写上位机软件的程序部分。首先,我谈一下自己所理解的C#上位机软件程序编写的中心思想。以串口助手(简洁版)为例,所有程序都是以“事件”为核心来进行的,对应的“事件”发生了,那软件就去执行我们自己编写的对应…

    2022年5月31日
    82
  • 数据挖掘应用实例分析

    数据挖掘应用实例分析数据挖掘应用实例分析——个性化推荐系统​ 数据挖掘技术,一门基于计算机技术与大数据时代信息处理需求的技术产物,从世纪之交的火热发展以来,不知不觉间,早已应用到我们生活的方方面面:电子邮箱中的垃圾邮件分类、电影院的票房预测、网页上的广告推荐、语音识别、电网语义精确搜索等。还有人工智能、自然语言处理、数据修正等。我们认为,数据挖掘技术将成为互联网时代应用最广泛的技术之一,它有可能为人类社会带来一个新的时代。​ 但是由于笔者才疏学浅,今天我们暂不谈得那么高深,只分析的一个常见的应用实例——个性化推荐系统。

    2022年6月15日
    30

发表回复

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

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