diff --git a/Bin/SunnyUI.dll b/Bin/SunnyUI.dll index 87d70a2f..f5b65394 100644 Binary files a/Bin/SunnyUI.dll and b/Bin/SunnyUI.dll differ diff --git a/Bin/SunnyUI.pdb b/Bin/SunnyUI.pdb index 24c679ca..e0a3eb8b 100644 Binary files a/Bin/SunnyUI.pdb and b/Bin/SunnyUI.pdb differ diff --git a/SunnyUI.Demo/Bin/SunnyUI.Demo.exe b/SunnyUI.Demo/Bin/SunnyUI.Demo.exe index dd07de35..ade88288 100644 Binary files a/SunnyUI.Demo/Bin/SunnyUI.Demo.exe and b/SunnyUI.Demo/Bin/SunnyUI.Demo.exe differ diff --git a/SunnyUI.Demo/Bin/SunnyUI.dll b/SunnyUI.Demo/Bin/SunnyUI.dll index 87d70a2f..f5b65394 100644 Binary files a/SunnyUI.Demo/Bin/SunnyUI.dll and b/SunnyUI.Demo/Bin/SunnyUI.dll differ diff --git a/SunnyUI.Demo/Controls/FDataGridView.Designer.cs b/SunnyUI.Demo/Controls/FDataGridView.Designer.cs index 4097ef67..fe18112d 100644 --- a/SunnyUI.Demo/Controls/FDataGridView.Designer.cs +++ b/SunnyUI.Demo/Controls/FDataGridView.Designer.cs @@ -81,7 +81,6 @@ dataGridViewCellStyle4.BackColor = System.Drawing.Color.White; this.uiDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle4; this.uiDataGridView1.RowTemplate.Height = 29; - this.uiDataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.uiDataGridView1.SelectedIndex = -1; this.uiDataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.uiDataGridView1.ShowRect = false; diff --git a/SunnyUI.Demo/Controls/FDataGridView.cs b/SunnyUI.Demo/Controls/FDataGridView.cs index 3adc6bd5..9c709d37 100644 --- a/SunnyUI.Demo/Controls/FDataGridView.cs +++ b/SunnyUI.Demo/Controls/FDataGridView.cs @@ -9,9 +9,10 @@ namespace Sunny.UI.Demo { InitializeComponent(); - uiDataGridView1.AddColumn("Column1", "Column1", 100); - uiDataGridView1.AddColumn("Column2", "Column2").SetFixedMode(100); - uiDataGridView1.AddColumn("Column3", "Column3").SetFixedMode(100); + uiDataGridView1.AddColumn("Column1", "Column1").SetFixedMode(400); + uiDataGridView1.AddColumn("Column2", "Column2").SetFixedMode(400); + uiDataGridView1.AddColumn("Column3", "Column3").SetFixedMode(400); + uiDataGridView1.AddColumn("Column4", "Column4").SetFixedMode(400); uiDataGridView1.ReadOnly = true; } diff --git a/SunnyUI/Controls/UIDataGridView.cs b/SunnyUI/Controls/UIDataGridView.cs index ee929abc..c3437f0b 100644 --- a/SunnyUI/Controls/UIDataGridView.cs +++ b/SunnyUI/Controls/UIDataGridView.cs @@ -31,6 +31,7 @@ namespace Sunny.UI public sealed class UIDataGridView : DataGridView, IStyleInterface { private readonly UIScrollBar VBar = new UIScrollBar(); + private readonly UIHorScrollBar HBar = new UIHorScrollBar(); public UIDataGridView() { @@ -45,8 +46,16 @@ namespace Sunny.UI VBar.ForeColor = UIColor.Blue; VBar.StyleCustomMode = true; 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(); - + //支持自定义标题行风格 EnableHeadersVisualStyles = false; @@ -64,14 +73,23 @@ namespace Sunny.UI RowTemplate.Height = 29; RowTemplate.MinimumHeight = 29; AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; - + //设置奇偶数行颜色 StripeEvenColor = UIColor.White; StripeOddColor = UIColor.LightBlue; 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() @@ -132,14 +150,13 @@ namespace Sunny.UI public void SetScrollInfo() { - if (VBar == null) + if (VBar == null || HBar == null) { return; } if (VerticalScrollBar.Visible) { - SetBarPosition(); VBar.Maximum = RowCount - 1; VBar.Value = FirstDisplayedScrollingRowIndex; VBar.Visible = true; @@ -148,6 +165,19 @@ namespace Sunny.UI { 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) @@ -192,6 +222,12 @@ namespace Sunny.UI VBar.Width = ScrollBarInfo.VerticalScrollBarWidth() + 1; VBar.Height = Height - 2; 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) @@ -263,8 +299,8 @@ namespace Sunny.UI StripeEvenColor = uiColor.GridStripeEvenColor; StripeOddColor = uiColor.GridStripeOddColor; - VBar.FillColor = uiColor.GridStripeOddColor; - VBar.ForeColor = uiColor.PrimaryColor; + HBar.FillColor = VBar.FillColor = uiColor.GridStripeOddColor; + HBar.ForeColor = VBar.ForeColor = uiColor.PrimaryColor; Invalidate(); }