You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
5.0 KiB
133 lines
5.0 KiB
#if NETFX || NETCORE
|
|
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using System.ComponentModel;
|
|
|
|
namespace Apewer.Surface
|
|
{
|
|
|
|
/// <summary></summary>
|
|
public class BlockTable : DataGridView
|
|
{
|
|
|
|
/// <summary></summary>
|
|
public BlockTable()
|
|
{
|
|
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.DoubleBuffer, true);
|
|
UpdateStyles();
|
|
|
|
this.Font = FormsUtility.DefaultFont;
|
|
this.ColumnHeadersHeight = 32;
|
|
this.RowHeadersVisible = false;
|
|
this.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
|
this.MultiSelect = false;
|
|
this.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
|
|
|
this.BackgroundColor = FormsUtility.White;
|
|
this.GridColor = FormsUtility.GraceBorder;
|
|
this.BorderStyle = BorderStyle.None;
|
|
this.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal;
|
|
|
|
this.EnableHeadersVisualStyles = false;
|
|
this.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None;
|
|
this.AdvancedColumnHeadersBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.None;
|
|
this.AdvancedColumnHeadersBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.None;
|
|
this.AdvancedColumnHeadersBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
|
|
this.AdvancedColumnHeadersBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Single;
|
|
this.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
|
|
|
|
this.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
|
|
this.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;
|
|
|
|
this.ReadOnly = true;
|
|
this.AllowUserToAddRows = false;
|
|
this.AllowUserToDeleteRows = false;
|
|
this.AllowUserToOrderColumns = false;
|
|
this.AllowUserToResizeColumns = true;
|
|
this.AllowUserToResizeRows = false;
|
|
|
|
this.RowsDefaultCellStyle.BackColor = Color.White;
|
|
// this.RowsDefaultCellStyle.DataSourceNullValue ;
|
|
this.RowsDefaultCellStyle.SelectionBackColor = FormsUtility.GraceWall;
|
|
this.RowsDefaultCellStyle.SelectionForeColor = FormsUtility.Black;
|
|
this.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.False;
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public void DisableSort()
|
|
{
|
|
for (int i = 0; i < this.Columns.Count; i++)
|
|
{
|
|
this.Columns[i].SortMode = DataGridViewColumnSortMode.Programmatic;
|
|
}
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public void EnableSort()
|
|
{
|
|
for (int i = 0; i < this.Columns.Count; i++)
|
|
{
|
|
this.Columns[i].SortMode = DataGridViewColumnSortMode.Automatic;
|
|
}
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public void Beautify()
|
|
{
|
|
this.ColumnHeadersHeight = 30;
|
|
for (int i = 0; i < this.Columns.Count; i++)
|
|
{
|
|
this.Columns[i].HeaderCell.Style.BackColor = FormsUtility.GraceBorder;
|
|
//this.Columns[i].HeaderCell.Style.WrapMode = DataGridViewTriState.False;
|
|
}
|
|
for (int i = 0; i < this.Rows.Count; i++)
|
|
{
|
|
this.Rows[i].Height = 30;
|
|
}
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public void Beautify(int rowIndex)
|
|
{
|
|
this.ColumnHeadersHeight = 30;
|
|
if (rowIndex >= 0)
|
|
{
|
|
if (rowIndex < this.Rows.Count)
|
|
{
|
|
this.Rows[rowIndex].Height = 30;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>设置指定单元格的文本颜色。</summary>
|
|
/// <param name="row">行。</param>
|
|
/// <param name="column">列。</param>
|
|
/// <param name="color">文本颜色。</param>
|
|
public void SetCellColor(int row, string column, Color color)
|
|
{
|
|
try
|
|
{
|
|
Rows[row].Cells[column].Style.ForeColor = color;
|
|
Rows[row].Cells[column].Style.SelectionForeColor = color;
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
/// <summary>设置指定单元格的文本颜色为红色。</summary>
|
|
public void SetCellRed(int row, string column) => SetCellColor(row, column, FormsUtility.Red);
|
|
|
|
/// <summary>设置指定单元格的文本颜色为绿色。</summary>
|
|
public void SetCellGreen(int row, string column) => SetCellColor(row, column, FormsUtility.Green);
|
|
|
|
/// <summary>设置指定单元格的文本颜色为蓝色。</summary>
|
|
public void SetCellBlue(int row, string column) => SetCellColor(row, column, FormsUtility.Blue);
|
|
|
|
/// <summary>设置指定单元格的文本颜色为黑色。</summary>
|
|
public void SetCellBlack(int row, string column) => SetCellColor(row, column, Color.Black);
|
|
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|