* UIDataGridView:重绘水平滚动条
This commit is contained in:
parent
e392a78305
commit
d63d8e6ce9
BIN
Bin/SunnyUI.dll
BIN
Bin/SunnyUI.dll
Binary file not shown.
BIN
Bin/SunnyUI.pdb
BIN
Bin/SunnyUI.pdb
Binary file not shown.
Binary file not shown.
Binary file not shown.
1
SunnyUI.Demo/Controls/FDataGridView.Designer.cs
generated
1
SunnyUI.Demo/Controls/FDataGridView.Designer.cs
generated
@ -81,7 +81,6 @@
|
|||||||
dataGridViewCellStyle4.BackColor = System.Drawing.Color.White;
|
dataGridViewCellStyle4.BackColor = System.Drawing.Color.White;
|
||||||
this.uiDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle4;
|
this.uiDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle4;
|
||||||
this.uiDataGridView1.RowTemplate.Height = 29;
|
this.uiDataGridView1.RowTemplate.Height = 29;
|
||||||
this.uiDataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
|
||||||
this.uiDataGridView1.SelectedIndex = -1;
|
this.uiDataGridView1.SelectedIndex = -1;
|
||||||
this.uiDataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
this.uiDataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
this.uiDataGridView1.ShowRect = false;
|
this.uiDataGridView1.ShowRect = false;
|
||||||
|
@ -9,9 +9,10 @@ namespace Sunny.UI.Demo
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
uiDataGridView1.AddColumn("Column1", "Column1", 100);
|
uiDataGridView1.AddColumn("Column1", "Column1").SetFixedMode(400);
|
||||||
uiDataGridView1.AddColumn("Column2", "Column2").SetFixedMode(100);
|
uiDataGridView1.AddColumn("Column2", "Column2").SetFixedMode(400);
|
||||||
uiDataGridView1.AddColumn("Column3", "Column3").SetFixedMode(100);
|
uiDataGridView1.AddColumn("Column3", "Column3").SetFixedMode(400);
|
||||||
|
uiDataGridView1.AddColumn("Column4", "Column4").SetFixedMode(400);
|
||||||
uiDataGridView1.ReadOnly = true;
|
uiDataGridView1.ReadOnly = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ namespace Sunny.UI
|
|||||||
public sealed class UIDataGridView : DataGridView, IStyleInterface
|
public sealed class UIDataGridView : DataGridView, IStyleInterface
|
||||||
{
|
{
|
||||||
private readonly UIScrollBar VBar = new UIScrollBar();
|
private readonly UIScrollBar VBar = new UIScrollBar();
|
||||||
|
private readonly UIHorScrollBar HBar = new UIHorScrollBar();
|
||||||
|
|
||||||
public UIDataGridView()
|
public UIDataGridView()
|
||||||
{
|
{
|
||||||
@ -45,8 +46,16 @@ namespace Sunny.UI
|
|||||||
VBar.ForeColor = UIColor.Blue;
|
VBar.ForeColor = UIColor.Blue;
|
||||||
VBar.StyleCustomMode = true;
|
VBar.StyleCustomMode = true;
|
||||||
VBar.ValueChanged += VBarValueChanged;
|
VBar.ValueChanged += VBarValueChanged;
|
||||||
|
|
||||||
|
HBar.Parent = this;
|
||||||
|
HBar.Visible = false;
|
||||||
|
HBar.FillColor = UIColor.LightBlue;
|
||||||
|
HBar.ForeColor = UIColor.Blue;
|
||||||
|
HBar.StyleCustomMode = true;
|
||||||
|
HBar.ValueChanged += HBar_ValueChanged;
|
||||||
|
|
||||||
SetBarPosition();
|
SetBarPosition();
|
||||||
|
|
||||||
//支持自定义标题行风格
|
//支持自定义标题行风格
|
||||||
EnableHeadersVisualStyles = false;
|
EnableHeadersVisualStyles = false;
|
||||||
|
|
||||||
@ -64,14 +73,23 @@ namespace Sunny.UI
|
|||||||
RowTemplate.Height = 29;
|
RowTemplate.Height = 29;
|
||||||
RowTemplate.MinimumHeight = 29;
|
RowTemplate.MinimumHeight = 29;
|
||||||
AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
|
AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
|
||||||
|
|
||||||
//设置奇偶数行颜色
|
//设置奇偶数行颜色
|
||||||
StripeEvenColor = UIColor.White;
|
StripeEvenColor = UIColor.White;
|
||||||
StripeOddColor = UIColor.LightBlue;
|
StripeOddColor = UIColor.LightBlue;
|
||||||
|
|
||||||
VerticalScrollBar.ValueChanged += VerticalScrollBar_ValueChanged;
|
VerticalScrollBar.ValueChanged += VerticalScrollBar_ValueChanged;
|
||||||
|
HorizontalScrollBar.VisibleChanged += HorizontalScrollBar_VisibleChanged;
|
||||||
|
}
|
||||||
|
|
||||||
Style = UIStyle.Blue;
|
private void HorizontalScrollBar_VisibleChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
HBar.Value = FirstDisplayedScrollingColumnIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HBar_ValueChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
FirstDisplayedScrollingColumnIndex = HBar.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init()
|
public void Init()
|
||||||
@ -132,14 +150,13 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
public void SetScrollInfo()
|
public void SetScrollInfo()
|
||||||
{
|
{
|
||||||
if (VBar == null)
|
if (VBar == null || HBar == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (VerticalScrollBar.Visible)
|
if (VerticalScrollBar.Visible)
|
||||||
{
|
{
|
||||||
SetBarPosition();
|
|
||||||
VBar.Maximum = RowCount - 1;
|
VBar.Maximum = RowCount - 1;
|
||||||
VBar.Value = FirstDisplayedScrollingRowIndex;
|
VBar.Value = FirstDisplayedScrollingRowIndex;
|
||||||
VBar.Visible = true;
|
VBar.Visible = true;
|
||||||
@ -148,6 +165,19 @@ namespace Sunny.UI
|
|||||||
{
|
{
|
||||||
VBar.Visible = false;
|
VBar.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (HorizontalScrollBar.Visible)
|
||||||
|
{
|
||||||
|
HBar.Maximum = ColumnCount - 1;
|
||||||
|
HBar.Value = FirstDisplayedScrollingColumnIndex;
|
||||||
|
HBar.Visible = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
HBar.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetBarPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnMouseWheel(MouseEventArgs e)
|
protected override void OnMouseWheel(MouseEventArgs e)
|
||||||
@ -192,6 +222,12 @@ namespace Sunny.UI
|
|||||||
VBar.Width = ScrollBarInfo.VerticalScrollBarWidth() + 1;
|
VBar.Width = ScrollBarInfo.VerticalScrollBarWidth() + 1;
|
||||||
VBar.Height = Height - 2;
|
VBar.Height = Height - 2;
|
||||||
VBar.BringToFront();
|
VBar.BringToFront();
|
||||||
|
|
||||||
|
HBar.Left = 2;
|
||||||
|
HBar.Height = ScrollBarInfo.HorizontalScrollBarHeight() + 1;
|
||||||
|
HBar.Width = Width - (VBar.Visible ? VBar.Width : 0) - 2;
|
||||||
|
HBar.Top = Height - HBar.Height - 2;
|
||||||
|
HBar.BringToFront();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnColumnAdded(DataGridViewColumnEventArgs e)
|
protected override void OnColumnAdded(DataGridViewColumnEventArgs e)
|
||||||
@ -263,8 +299,8 @@ namespace Sunny.UI
|
|||||||
StripeEvenColor = uiColor.GridStripeEvenColor;
|
StripeEvenColor = uiColor.GridStripeEvenColor;
|
||||||
StripeOddColor = uiColor.GridStripeOddColor;
|
StripeOddColor = uiColor.GridStripeOddColor;
|
||||||
|
|
||||||
VBar.FillColor = uiColor.GridStripeOddColor;
|
HBar.FillColor = VBar.FillColor = uiColor.GridStripeOddColor;
|
||||||
VBar.ForeColor = uiColor.PrimaryColor;
|
HBar.ForeColor = VBar.ForeColor = uiColor.PrimaryColor;
|
||||||
|
|
||||||
Invalidate();
|
Invalidate();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user