• XtraGrid 单元格加边框颜色


     

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    
    using System.Reflection;
    using DevExpress.XtraGrid;
    using DevExpress.XtraGrid.Columns;
    using DevExpress.XtraGrid.Views.Base;
    using DevExpress.XtraGrid.Views.Grid;
    using DevExpress.XtraGrid.Views.Grid.ViewInfo;
    using DevExpress.XtraGrid.Views.Grid.Drawing;
    
    namespace CellBorder
    {
        /// <summary>
        /// Summary description for Form1.
        /// </summary>
        public class Form1 : System.Windows.Forms.Form {
            private DevExpress.XtraGrid.GridControl gridControl1;
            private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.Container components = null;
    
            public Form1() {
                //
                // Required for Windows Form Designer support
                //
                InitializeComponent();
    
                //
                // TODO: Add any constructor code after InitializeComponent call
                //
            }
    
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            protected override void Dispose( bool disposing ) {
                if( disposing ) {
                    if (components != null) {
                        components.Dispose();
                    }
                }
                base.Dispose( disposing );
            }
    
            #region Windows Form Designer generated code
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent() {
                this.gridControl1 = new DevExpress.XtraGrid.GridControl();
                this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
                ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).BeginInit();
                ((System.ComponentModel.ISupportInitialize)(this.gridView1)).BeginInit();
                this.SuspendLayout();
                // 
                // gridControl1
                // 
                this.gridControl1.Dock = System.Windows.Forms.DockStyle.Fill;
                this.gridControl1.EmbeddedNavigator.Name = "";
                this.gridControl1.Location = new System.Drawing.Point(0, 0);
                this.gridControl1.MainView = this.gridView1;
                this.gridControl1.Name = "gridControl1";
                this.gridControl1.Size = new System.Drawing.Size(476, 293);
                this.gridControl1.TabIndex = 0;
                this.gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
                this.gridView1});
                // 
                // gridView1
                // 
                this.gridView1.GridControl = this.gridControl1;
                this.gridView1.Name = "gridView1";
                this.gridView1.CustomDrawCell += new
    DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventHandler(this.gridView1_CustomDrawCell);
                // 
                // Form1
                // 
                this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
                this.ClientSize = new System.Drawing.Size(476, 293);
                this.Controls.Add(this.gridControl1);
                this.Name = "Form1";
                this.Text = "Form1";
                this.Load += new System.EventHandler(this.Form1_Load);
                ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.gridView1)).EndInit();
                this.ResumeLayout(false);
    
            }
            #endregion
    
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main() {
                Application.Run(new Form1());
            }
    
            private void Form1_Load(object sender, System.EventArgs e) {
                new DevExpress.XtraGrid.Design.XViewsPrinting(gridControl1);
            }
    
            private void gridView1_CustomDrawCell(object sender,
    DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) {
                GridView view = sender as GridView;
                if(e.Column == view.FocusedColumn && e.RowHandle == view.FocusedRowHandle) {
                    CellDrawHelper.DoDefaultDrawCell(view, e);
                    CellDrawHelper.DrawCellBorder(e);
                    e.Handled = true;
                }
            }
        }
    
        public static class CellDrawHelper {
            public static void DrawCellBorder(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) {
                Brush brush = Brushes.Black;
                e.Graphics.FillRectangle(brush, new Rectangle(e.Bounds.X - 1, e.Bounds.Y - 1, e.Bounds.Width
    + 2, 2));
                e.Graphics.FillRectangle(brush, new Rectangle(e.Bounds.Right - 1, e.Bounds.Y - 1, 2,
    e.Bounds.Height + 2));
                e.Graphics.FillRectangle(brush, new Rectangle(e.Bounds.X - 1, e.Bounds.Bottom - 1,
    e.Bounds.Width + 2, 2));
                e.Graphics.FillRectangle(brush, new Rectangle(e.Bounds.X - 1, e.Bounds.Y - 1, 2,
    e.Bounds.Height + 2));
            }
    
            public static void DoDefaultDrawCell(GridView view, RowCellCustomDrawEventArgs e) {
                PropertyInfo pi;
                GridControl grid;
                GridViewInfo info;
                GridCellInfo cell;
                GridEditorContainerHelper helper;
                GridViewDrawArgs args;
    
                info = view.GetViewInfo() as GridViewInfo;
                cell = e.Cell as GridCellInfo;
                grid = view.GridControl;
                pi = grid.GetType().GetProperty("EditorHelper", BindingFlags.NonPublic |
    BindingFlags.Instance | BindingFlags.DeclaredOnly);
                helper = pi.GetValue(grid, null) as GridEditorContainerHelper;
                args = new GridViewDrawArgs(e.Cache, info, e.Bounds);
                e.Appearance.FillRectangle(e.Cache, e.Bounds);
                helper.DrawCellEdit(args, cell.Editor, cell.ViewInfo, e.Appearance,
    cell.CellValueRect.Location);
            }
        }
    }

     

  • 相关阅读:
    Nodejs接收图片base64格式保存为文件
    tracking.js实现前端人脸识别
    node.js执行shell命令进行服务器重启
    Cordova 实现沉浸式(透明)状态栏效果
    SpringBoot启动原理详解
    连续子数组的最大乘积及连续子数组的最大和(Java)
    记录面试遇到的几个自己不太熟悉的问题(3)
    记录面试遇到的几个自己不太熟悉的问题(2)
    记录面试遇到的几个自己不太熟悉的问题(1)
    Java设计模式
  • 原文地址:https://www.cnblogs.com/linyijia/p/2231401.html
Copyright © 2020-2023  润新知