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.
193 lines
6.6 KiB
193 lines
6.6 KiB
#if NETFX || NETCORE
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using Apewer;
|
|
|
|
namespace Apewer.Surface
|
|
{
|
|
|
|
/// <summary></summary>
|
|
public partial class BlockLog : BaseControl
|
|
{
|
|
|
|
private DataGridView _table = new DataGridView();
|
|
|
|
private Panel _tipwall = new Panel();
|
|
private TextBox _tiptext = new TextBox();
|
|
|
|
/// <summary></summary>
|
|
public BlockLog()
|
|
{
|
|
BackColor = FormsUtility.GraceBorder;
|
|
Padding = new Padding(1);
|
|
|
|
Controls.Add(_table);
|
|
Controls.Add(_tipwall);
|
|
_tipwall.Controls.Add(_tiptext);
|
|
|
|
_tipwall.Visible = false;
|
|
_tipwall.Dock = DockStyle.Fill;
|
|
_tipwall.Padding = new Padding(40);
|
|
_tipwall.BackColor = FormsUtility.White;
|
|
|
|
_tiptext.Dock = DockStyle.Fill;
|
|
_tiptext.Multiline = true;
|
|
//_tiptext.ReadOnly = true;
|
|
_tiptext.BorderStyle = BorderStyle.None;
|
|
_tiptext.BackColor = _tipwall.BackColor;
|
|
_tiptext.ScrollBars = ScrollBars.None;
|
|
|
|
_table.Dock = DockStyle.Fill;
|
|
_table.Font = FormsUtility.DefaultFont; ;
|
|
_table.ColumnHeadersHeight = 32;
|
|
_table.RowHeadersVisible = false;
|
|
_table.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
|
_table.MultiSelect = false;
|
|
//_table.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
|
|
|
_table.BackgroundColor = FormsUtility.White;
|
|
_table.GridColor = FormsUtility.GraceBorder;
|
|
|
|
_table.BorderStyle = BorderStyle.None;
|
|
_table.CellBorderStyle = DataGridViewCellBorderStyle.None;
|
|
_table.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
|
|
_table.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
|
|
_table.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None;
|
|
_table.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;
|
|
|
|
_table.ReadOnly = true;
|
|
_table.AllowUserToAddRows = false;
|
|
_table.AllowUserToDeleteRows = false;
|
|
_table.AllowUserToOrderColumns = false;
|
|
_table.AllowUserToResizeColumns = true;
|
|
_table.AllowUserToResizeRows = false;
|
|
|
|
_table.RowsDefaultCellStyle.BackColor = Color.White;
|
|
_table.RowsDefaultCellStyle.NullValue = "";
|
|
_table.RowsDefaultCellStyle.SelectionBackColor = FormsUtility.GraceWall;
|
|
_table.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.False;
|
|
|
|
_table.Columns.Add("_clock", "时间");
|
|
_table.Columns.Add("_text", "内容");
|
|
_table.Columns["_clock"].Width = 150;
|
|
_table.Columns["_text"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
|
|
|
_table.ColumnHeadersVisible = false;
|
|
|
|
_table.CellDoubleClick += Event_Table_DoubleClick;
|
|
_tipwall.DoubleClick += Event_TipWall_DoubleClick;
|
|
_tiptext.DoubleClick += Event_TipText_DoubleClick;
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public new void Dispose()
|
|
{
|
|
_tipwall.Controls.Clear();
|
|
Controls.Clear();
|
|
if (_table != null) _table.Dispose();
|
|
if (_tiptext != null) _tiptext.Dispose();
|
|
if (_tipwall != null) _tipwall.Dispose();
|
|
base.Dispose();
|
|
}
|
|
|
|
private void Event_TipText_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
_tipwall.Visible = false;
|
|
_table.Visible = true;
|
|
}
|
|
|
|
private void Event_TipWall_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
_tipwall.Visible = false;
|
|
_table.Visible = true;
|
|
}
|
|
|
|
private void Event_Table_DoubleClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if ((e.RowIndex >= 0) && (e.ColumnIndex >= 0))
|
|
{
|
|
_table.Visible = false;
|
|
_tipwall.Visible = true;
|
|
_tiptext.Text = _table[e.ColumnIndex, e.RowIndex].Value.ToString();
|
|
_tiptext.ForeColor = _table[e.ColumnIndex, e.RowIndex].Style.ForeColor;
|
|
}
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public void Write(string text = "") { Write(text, ForeColor); }
|
|
|
|
/// <summary></summary>
|
|
public void Blue(string text = "") { Write(text, FormsUtility.Blue); }
|
|
|
|
/// <summary></summary>
|
|
public void Purple(string text = "") { Write(text, FormsUtility.Purple); }
|
|
|
|
/// <summary></summary>
|
|
public void Orange(string text = "") { Write(text, FormsUtility.Orange); }
|
|
|
|
/// <summary></summary>
|
|
public void Black(string text = "") { Write(text, FormsUtility.Black); }
|
|
|
|
/// <summary></summary>
|
|
public void Green(string text = "") { Write(text, FormsUtility.Green); }
|
|
|
|
/// <summary></summary>
|
|
public void Red(string text = "") { Write(text, FormsUtility.Red); }
|
|
|
|
/// <summary></summary>
|
|
public void Gray(string text = "") { Write(text, FormsUtility.GraceLocked); }
|
|
|
|
/// <summary></summary>
|
|
public void Error(string text = "") { Red(text); }
|
|
|
|
/// <summary></summary>
|
|
public void Write(string text, Color color)
|
|
{
|
|
string t = string.IsNullOrEmpty(text) ? " " : text;
|
|
try
|
|
{
|
|
Invoke(new Invoker(delegate ()
|
|
{
|
|
int i = _table.Rows.Add(ClockUtility.LucidNow, t);
|
|
var c = (color == null) ? FormsUtility.Black : color;
|
|
_table.Rows[i].Height = 24;
|
|
_table.Rows[i].Cells[0].Style.Padding = new Padding(6, 0, 4, 0);
|
|
_table.Rows[i].Cells[0].Style.ForeColor = FormsUtility.GraceLocked;
|
|
_table.Rows[i].Cells[0].Style.SelectionForeColor = FormsUtility.GraceLocked;
|
|
_table.Rows[i].Cells[1].Style.ForeColor = c;
|
|
_table.Rows[i].Cells[1].Style.SelectionForeColor = c;
|
|
_table.CurrentCell = _table[0, i];
|
|
}));
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public void Clean()
|
|
{
|
|
_table.Rows.Clear();
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public void Clear()
|
|
{
|
|
Clean();
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public void ShowMilli()
|
|
{
|
|
_table.Columns["_clock"].Width = 160;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|