diff --git a/Bin/net40/SunnyUI.Demo.exe b/Bin/net40/SunnyUI.Demo.exe index 2c6793a8..003e9b33 100644 Binary files a/Bin/net40/SunnyUI.Demo.exe and b/Bin/net40/SunnyUI.Demo.exe differ diff --git a/Bin/net40/SunnyUI.dll b/Bin/net40/SunnyUI.dll index bfbc7e67..a296d648 100644 Binary files a/Bin/net40/SunnyUI.dll and b/Bin/net40/SunnyUI.dll differ diff --git a/Bin/net462/SunnyUI.dll b/Bin/net462/SunnyUI.dll index b097f27d..ee21bed5 100644 Binary files a/Bin/net462/SunnyUI.dll and b/Bin/net462/SunnyUI.dll differ diff --git a/Bin/net5.0-windows/SunnyUI.dll b/Bin/net5.0-windows/SunnyUI.dll index df3f13fc..5ce4530c 100644 Binary files a/Bin/net5.0-windows/SunnyUI.dll and b/Bin/net5.0-windows/SunnyUI.dll differ diff --git a/Bin/net5.0-windows/ref/SunnyUI.dll b/Bin/net5.0-windows/ref/SunnyUI.dll index 5830e7cd..99d7f246 100644 Binary files a/Bin/net5.0-windows/ref/SunnyUI.dll and b/Bin/net5.0-windows/ref/SunnyUI.dll differ diff --git a/Bin/netcoreapp3.1/SunnyUI.dll b/Bin/netcoreapp3.1/SunnyUI.dll index ba406e5e..e4dbd985 100644 Binary files a/Bin/netcoreapp3.1/SunnyUI.dll and b/Bin/netcoreapp3.1/SunnyUI.dll differ diff --git a/SunnyUI.Demo/Controls/FCombobox.Designer.cs b/SunnyUI.Demo/Controls/FCombobox.Designer.cs index 6cc2c6f6..486bbef2 100644 --- a/SunnyUI.Demo/Controls/FCombobox.Designer.cs +++ b/SunnyUI.Demo/Controls/FCombobox.Designer.cs @@ -29,54 +29,54 @@ namespace Sunny.UI.Demo /// private void InitializeComponent() { - System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("节点0"); - System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("节点1"); - System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("节点2"); - System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("节点3"); - System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] { - treeNode1, - treeNode2, - treeNode3, - treeNode4}); - System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("节点4"); - System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("节点5"); - System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("节点6"); - System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("节点7"); - System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] { - treeNode6, - treeNode7, - treeNode8, - treeNode9}); - System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("节点2"); - System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("节点3"); - System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("节点00"); - System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("节点01"); - System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("节点02"); - System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("节点03"); - System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] { - treeNode13, - treeNode14, - treeNode15, - treeNode16}); - System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("节点11"); - System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("节点12"); - System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("节点13"); - System.Windows.Forms.TreeNode treeNode21 = new System.Windows.Forms.TreeNode("节点14"); - System.Windows.Forms.TreeNode treeNode22 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] { - treeNode18, - treeNode19, - treeNode20, - treeNode21}); - System.Windows.Forms.TreeNode treeNode23 = new System.Windows.Forms.TreeNode("节点2"); - System.Windows.Forms.TreeNode treeNode24 = new System.Windows.Forms.TreeNode("节点3"); - System.Windows.Forms.TreeNode treeNode25 = new System.Windows.Forms.TreeNode("节点0"); - System.Windows.Forms.TreeNode treeNode26 = new System.Windows.Forms.TreeNode("节点1"); - System.Windows.Forms.TreeNode treeNode27 = new System.Windows.Forms.TreeNode("节点2"); - System.Windows.Forms.TreeNode treeNode28 = new System.Windows.Forms.TreeNode("节点3"); - System.Windows.Forms.TreeNode treeNode29 = new System.Windows.Forms.TreeNode("节点0"); - System.Windows.Forms.TreeNode treeNode30 = new System.Windows.Forms.TreeNode("节点1"); - System.Windows.Forms.TreeNode treeNode31 = new System.Windows.Forms.TreeNode("节点2"); - System.Windows.Forms.TreeNode treeNode32 = new System.Windows.Forms.TreeNode("节点3"); + System.Windows.Forms.TreeNode treeNode33 = new System.Windows.Forms.TreeNode("节点0"); + System.Windows.Forms.TreeNode treeNode34 = new System.Windows.Forms.TreeNode("节点1"); + System.Windows.Forms.TreeNode treeNode35 = new System.Windows.Forms.TreeNode("节点2"); + System.Windows.Forms.TreeNode treeNode36 = new System.Windows.Forms.TreeNode("节点3"); + System.Windows.Forms.TreeNode treeNode37 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] { + treeNode33, + treeNode34, + treeNode35, + treeNode36}); + System.Windows.Forms.TreeNode treeNode38 = new System.Windows.Forms.TreeNode("节点4"); + System.Windows.Forms.TreeNode treeNode39 = new System.Windows.Forms.TreeNode("节点5"); + System.Windows.Forms.TreeNode treeNode40 = new System.Windows.Forms.TreeNode("节点6"); + System.Windows.Forms.TreeNode treeNode41 = new System.Windows.Forms.TreeNode("节点7"); + System.Windows.Forms.TreeNode treeNode42 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] { + treeNode38, + treeNode39, + treeNode40, + treeNode41}); + System.Windows.Forms.TreeNode treeNode43 = new System.Windows.Forms.TreeNode("节点2"); + System.Windows.Forms.TreeNode treeNode44 = new System.Windows.Forms.TreeNode("节点3"); + System.Windows.Forms.TreeNode treeNode45 = new System.Windows.Forms.TreeNode("节点00"); + System.Windows.Forms.TreeNode treeNode46 = new System.Windows.Forms.TreeNode("节点01"); + System.Windows.Forms.TreeNode treeNode47 = new System.Windows.Forms.TreeNode("节点02"); + System.Windows.Forms.TreeNode treeNode48 = new System.Windows.Forms.TreeNode("节点03"); + System.Windows.Forms.TreeNode treeNode49 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] { + treeNode45, + treeNode46, + treeNode47, + treeNode48}); + System.Windows.Forms.TreeNode treeNode50 = new System.Windows.Forms.TreeNode("节点11"); + System.Windows.Forms.TreeNode treeNode51 = new System.Windows.Forms.TreeNode("节点12"); + System.Windows.Forms.TreeNode treeNode52 = new System.Windows.Forms.TreeNode("节点13"); + System.Windows.Forms.TreeNode treeNode53 = new System.Windows.Forms.TreeNode("节点14"); + System.Windows.Forms.TreeNode treeNode54 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] { + treeNode50, + treeNode51, + treeNode52, + treeNode53}); + System.Windows.Forms.TreeNode treeNode55 = new System.Windows.Forms.TreeNode("节点2"); + System.Windows.Forms.TreeNode treeNode56 = new System.Windows.Forms.TreeNode("节点3"); + System.Windows.Forms.TreeNode treeNode57 = new System.Windows.Forms.TreeNode("节点0"); + System.Windows.Forms.TreeNode treeNode58 = new System.Windows.Forms.TreeNode("节点1"); + System.Windows.Forms.TreeNode treeNode59 = new System.Windows.Forms.TreeNode("节点2"); + System.Windows.Forms.TreeNode treeNode60 = new System.Windows.Forms.TreeNode("节点3"); + System.Windows.Forms.TreeNode treeNode61 = new System.Windows.Forms.TreeNode("节点0"); + System.Windows.Forms.TreeNode treeNode62 = new System.Windows.Forms.TreeNode("节点1"); + System.Windows.Forms.TreeNode treeNode63 = new System.Windows.Forms.TreeNode("节点2"); + System.Windows.Forms.TreeNode treeNode64 = new System.Windows.Forms.TreeNode("节点3"); this.uiComboTreeView3 = new Sunny.UI.UIComboTreeView(); this.uiComboTreeView4 = new Sunny.UI.UIComboTreeView(); this.uiComboTreeView2 = new Sunny.UI.UIComboTreeView(); @@ -95,6 +95,8 @@ namespace Sunny.UI.Demo this.uiComboBox1 = new Sunny.UI.UIComboBox(); this.uiDatePicker2 = new Sunny.UI.UIDatePicker(); this.uiDatePicker3 = new Sunny.UI.UIDatePicker(); + this.uiLine4 = new Sunny.UI.UILine(); + this.uiComboDataGridView1 = new Sunny.UI.UIComboDataGridView(); this.SuspendLayout(); // // uiComboTreeView3 @@ -107,35 +109,35 @@ namespace Sunny.UI.Demo this.uiComboTreeView3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.uiComboTreeView3.MinimumSize = new System.Drawing.Size(63, 0); this.uiComboTreeView3.Name = "uiComboTreeView3"; - treeNode1.Name = "节点0"; - treeNode1.Text = "节点0"; - treeNode2.Name = "节点1"; - treeNode2.Text = "节点1"; - treeNode3.Name = "节点2"; - treeNode3.Text = "节点2"; - treeNode4.Name = "节点3"; - treeNode4.Text = "节点3"; - treeNode5.Name = "节点0"; - treeNode5.Text = "节点0"; - treeNode6.Name = "节点4"; - treeNode6.Text = "节点4"; - treeNode7.Name = "节点5"; - treeNode7.Text = "节点5"; - treeNode8.Name = "节点6"; - treeNode8.Text = "节点6"; - treeNode9.Name = "节点7"; - treeNode9.Text = "节点7"; - treeNode10.Name = "节点1"; - treeNode10.Text = "节点1"; - treeNode11.Name = "节点2"; - treeNode11.Text = "节点2"; - treeNode12.Name = "节点3"; - treeNode12.Text = "节点3"; + treeNode33.Name = "节点0"; + treeNode33.Text = "节点0"; + treeNode34.Name = "节点1"; + treeNode34.Text = "节点1"; + treeNode35.Name = "节点2"; + treeNode35.Text = "节点2"; + treeNode36.Name = "节点3"; + treeNode36.Text = "节点3"; + treeNode37.Name = "节点0"; + treeNode37.Text = "节点0"; + treeNode38.Name = "节点4"; + treeNode38.Text = "节点4"; + treeNode39.Name = "节点5"; + treeNode39.Text = "节点5"; + treeNode40.Name = "节点6"; + treeNode40.Text = "节点6"; + treeNode41.Name = "节点7"; + treeNode41.Text = "节点7"; + treeNode42.Name = "节点1"; + treeNode42.Text = "节点1"; + treeNode43.Name = "节点2"; + treeNode43.Text = "节点2"; + treeNode44.Name = "节点3"; + treeNode44.Text = "节点3"; this.uiComboTreeView3.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode5, - treeNode10, - treeNode11, - treeNode12}); + treeNode37, + treeNode42, + treeNode43, + treeNode44}); this.uiComboTreeView3.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2); this.uiComboTreeView3.ShowLines = true; this.uiComboTreeView3.Size = new System.Drawing.Size(150, 29); @@ -152,35 +154,35 @@ namespace Sunny.UI.Demo this.uiComboTreeView4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.uiComboTreeView4.MinimumSize = new System.Drawing.Size(63, 0); this.uiComboTreeView4.Name = "uiComboTreeView4"; - treeNode13.Name = "节点0"; - treeNode13.Text = "节点00"; - treeNode14.Name = "节点1"; - treeNode14.Text = "节点01"; - treeNode15.Name = "节点2"; - treeNode15.Text = "节点02"; - treeNode16.Name = "节点3"; - treeNode16.Text = "节点03"; - treeNode17.Name = "节点0"; - treeNode17.Text = "节点0"; - treeNode18.Name = "节点4"; - treeNode18.Text = "节点11"; - treeNode19.Name = "节点5"; - treeNode19.Text = "节点12"; - treeNode20.Name = "节点6"; - treeNode20.Text = "节点13"; - treeNode21.Name = "节点7"; - treeNode21.Text = "节点14"; - treeNode22.Name = "节点1"; - treeNode22.Text = "节点1"; - treeNode23.Name = "节点2"; - treeNode23.Text = "节点2"; - treeNode24.Name = "节点3"; - treeNode24.Text = "节点3"; + treeNode45.Name = "节点0"; + treeNode45.Text = "节点00"; + treeNode46.Name = "节点1"; + treeNode46.Text = "节点01"; + treeNode47.Name = "节点2"; + treeNode47.Text = "节点02"; + treeNode48.Name = "节点3"; + treeNode48.Text = "节点03"; + treeNode49.Name = "节点0"; + treeNode49.Text = "节点0"; + treeNode50.Name = "节点4"; + treeNode50.Text = "节点11"; + treeNode51.Name = "节点5"; + treeNode51.Text = "节点12"; + treeNode52.Name = "节点6"; + treeNode52.Text = "节点13"; + treeNode53.Name = "节点7"; + treeNode53.Text = "节点14"; + treeNode54.Name = "节点1"; + treeNode54.Text = "节点1"; + treeNode55.Name = "节点2"; + treeNode55.Text = "节点2"; + treeNode56.Name = "节点3"; + treeNode56.Text = "节点3"; this.uiComboTreeView4.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode17, - treeNode22, - treeNode23, - treeNode24}); + treeNode49, + treeNode54, + treeNode55, + treeNode56}); this.uiComboTreeView4.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2); this.uiComboTreeView4.ShowLines = true; this.uiComboTreeView4.Size = new System.Drawing.Size(150, 29); @@ -197,19 +199,19 @@ namespace Sunny.UI.Demo this.uiComboTreeView2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.uiComboTreeView2.MinimumSize = new System.Drawing.Size(63, 0); this.uiComboTreeView2.Name = "uiComboTreeView2"; - treeNode25.Name = "节点0"; - treeNode25.Text = "节点0"; - treeNode26.Name = "节点1"; - treeNode26.Text = "节点1"; - treeNode27.Name = "节点2"; - treeNode27.Text = "节点2"; - treeNode28.Name = "节点3"; - treeNode28.Text = "节点3"; + treeNode57.Name = "节点0"; + treeNode57.Text = "节点0"; + treeNode58.Name = "节点1"; + treeNode58.Text = "节点1"; + treeNode59.Name = "节点2"; + treeNode59.Text = "节点2"; + treeNode60.Name = "节点3"; + treeNode60.Text = "节点3"; this.uiComboTreeView2.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode25, - treeNode26, - treeNode27, - treeNode28}); + treeNode57, + treeNode58, + treeNode59, + treeNode60}); this.uiComboTreeView2.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2); this.uiComboTreeView2.Size = new System.Drawing.Size(150, 29); this.uiComboTreeView2.TabIndex = 65; @@ -236,19 +238,19 @@ namespace Sunny.UI.Demo this.uiComboTreeView1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.uiComboTreeView1.MinimumSize = new System.Drawing.Size(63, 0); this.uiComboTreeView1.Name = "uiComboTreeView1"; - treeNode29.Name = "节点0"; - treeNode29.Text = "节点0"; - treeNode30.Name = "节点1"; - treeNode30.Text = "节点1"; - treeNode31.Name = "节点2"; - treeNode31.Text = "节点2"; - treeNode32.Name = "节点3"; - treeNode32.Text = "节点3"; + treeNode61.Name = "节点0"; + treeNode61.Text = "节点0"; + treeNode62.Name = "节点1"; + treeNode62.Text = "节点1"; + treeNode63.Name = "节点2"; + treeNode63.Text = "节点2"; + treeNode64.Name = "节点3"; + treeNode64.Text = "节点3"; this.uiComboTreeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode29, - treeNode30, - treeNode31, - treeNode32}); + treeNode61, + treeNode62, + treeNode63, + treeNode64}); this.uiComboTreeView1.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2); this.uiComboTreeView1.Size = new System.Drawing.Size(150, 29); this.uiComboTreeView1.TabIndex = 63; @@ -471,11 +473,38 @@ namespace Sunny.UI.Demo this.uiDatePicker3.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; this.uiDatePicker3.Value = new System.DateTime(2020, 4, 16, 0, 0, 0, 0); // + // uiLine4 + // + this.uiLine4.Font = new System.Drawing.Font("微软雅黑", 12F); + this.uiLine4.Location = new System.Drawing.Point(386, 257); + this.uiLine4.MinimumSize = new System.Drawing.Size(16, 16); + this.uiLine4.Name = "uiLine4"; + this.uiLine4.Size = new System.Drawing.Size(308, 20); + this.uiLine4.TabIndex = 73; + this.uiLine4.Text = "UIComboDataGridView"; + this.uiLine4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // uiComboDataGridView1 + // + this.uiComboDataGridView1.DropDownStyle = Sunny.UI.UIDropDownStyle.DropDownList; + this.uiComboDataGridView1.FillColor = System.Drawing.Color.White; + this.uiComboDataGridView1.Font = new System.Drawing.Font("微软雅黑", 12F); + this.uiComboDataGridView1.Location = new System.Drawing.Point(386, 292); + this.uiComboDataGridView1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.uiComboDataGridView1.MinimumSize = new System.Drawing.Size(63, 0); + this.uiComboDataGridView1.Name = "uiComboDataGridView1"; + this.uiComboDataGridView1.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2); + this.uiComboDataGridView1.Size = new System.Drawing.Size(308, 29); + this.uiComboDataGridView1.TabIndex = 74; + this.uiComboDataGridView1.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + // // FCombobox // this.AllowShowTitle = true; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(765, 522); + this.Controls.Add(this.uiComboDataGridView1); + this.Controls.Add(this.uiLine4); this.Controls.Add(this.uiDatePicker3); this.Controls.Add(this.uiDatePicker2); this.Controls.Add(this.uiComboTreeView3); @@ -522,5 +551,7 @@ namespace Sunny.UI.Demo private UIComboBox uiComboBox1; private UIDatePicker uiDatePicker2; private UIDatePicker uiDatePicker3; + private UILine uiLine4; + private UIComboDataGridView uiComboDataGridView1; } } \ No newline at end of file diff --git a/SunnyUI.Demo/Controls/FCombobox.cs b/SunnyUI.Demo/Controls/FCombobox.cs index b11fd710..398c9f81 100644 --- a/SunnyUI.Demo/Controls/FCombobox.cs +++ b/SunnyUI.Demo/Controls/FCombobox.cs @@ -21,6 +21,48 @@ namespace Sunny.UI.Demo uiComboBox2.ValueMember = "Id"; uiComboBox2.DisplayMember = "Name"; uiComboBox2.DataSource = infoList; + + uiComboDataGridView1.DataGridView.Init(); + uiComboDataGridView1.ItemSize = new System.Drawing.Size(360, 240); + uiComboDataGridView1.DataGridView.AddColumn("Column1", "Column1"); + uiComboDataGridView1.DataGridView.AddColumn("Column2", "Column2"); + uiComboDataGridView1.DataGridView.AddColumn("Column3", "Column3"); + uiComboDataGridView1.DataGridView.ReadOnly = true; + uiComboDataGridView1.SelectIndexChange += UiComboDataGridView1_SelectIndexChange; + + for (int i = 0; i < 20; i++) + { + Data data = new Data(); + data.Column1 = "Data" + i.ToString("D2"); + data.Column2 = i.Mod(2) == 0 ? "A" : "B"; + data.Column3 = "编辑"; + datas.Add(data); + } + + uiComboDataGridView1.DataGridView.DataSource = datas; + } + + private void UiComboDataGridView1_SelectIndexChange(object sender, int index) + { + uiComboDataGridView1.Text = datas[index].ToString(); + } + + List datas = new List(); + + public class Data + { + public string Column1 { get; set; } + + public string Column2 { get; set; } + + public string Column3 { get; set; } + + public bool Column4 { get; set; } + + public override string ToString() + { + return Column1; + } } public class Info diff --git a/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs b/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs new file mode 100644 index 00000000..19020e3b --- /dev/null +++ b/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs @@ -0,0 +1,171 @@ +namespace Sunny.UI +{ + public class UIComboDataGridViewItem : UIDropDownItem, ITranslate + { + private UIPanel panel; + private UISymbolButton btnCancel; + private UISymbolButton btnOK; + private UIDataGridView dataGridView; + + public UIComboDataGridViewItem() + { + InitializeComponent(); + Translate(); + } + + public void Translate() + { + btnOK.Text = UILocalize.OK; + btnCancel.Text = UILocalize.Cancel; + } + + public bool ShowButtons + { + get => panel.Visible; + set => panel.Visible = value; + } + + public UIDataGridView DataGridView => dataGridView; + + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); + this.panel = new Sunny.UI.UIPanel(); + this.btnCancel = new Sunny.UI.UISymbolButton(); + this.btnOK = new Sunny.UI.UISymbolButton(); + this.dataGridView = new Sunny.UI.UIDataGridView(); + this.panel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit(); + this.SuspendLayout(); + // + // panel + // + this.panel.Controls.Add(this.btnCancel); + this.panel.Controls.Add(this.btnOK); + this.panel.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.panel.Location = new System.Drawing.Point(0, 194); + this.panel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel.MinimumSize = new System.Drawing.Size(1, 1); + this.panel.Name = "panel"; + this.panel.RadiusSides = Sunny.UI.UICornerRadiusSides.None; + this.panel.RectSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)(((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom))); + this.panel.Size = new System.Drawing.Size(385, 44); + this.panel.TabIndex = 2; + this.panel.Text = null; + this.panel.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter; + this.panel.Visible = false; + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnCancel.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btnCancel.FillHoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(127)))), ((int)(((byte)(128))))); + this.btnCancel.FillPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(202)))), ((int)(((byte)(87)))), ((int)(((byte)(89))))); + this.btnCancel.FillSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(202)))), ((int)(((byte)(87)))), ((int)(((byte)(89))))); + this.btnCancel.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.btnCancel.Location = new System.Drawing.Point(294, 8); + this.btnCancel.MinimumSize = new System.Drawing.Size(1, 1); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.RectColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btnCancel.RectHoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(127)))), ((int)(((byte)(128))))); + this.btnCancel.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(202)))), ((int)(((byte)(87)))), ((int)(((byte)(89))))); + this.btnCancel.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(202)))), ((int)(((byte)(87)))), ((int)(((byte)(89))))); + this.btnCancel.Size = new System.Drawing.Size(80, 29); + this.btnCancel.Style = Sunny.UI.UIStyle.Red; + this.btnCancel.StyleCustomMode = true; + this.btnCancel.Symbol = 61453; + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "取消"; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnOK.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.btnOK.Location = new System.Drawing.Point(205, 8); + this.btnOK.MinimumSize = new System.Drawing.Size(1, 1); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(80, 29); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "确定"; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // uiDataGridView + // + dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255))))); + this.dataGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6; + this.dataGridView.BackgroundColor = System.Drawing.Color.White; + this.dataGridView.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255))))); + dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + dataGridViewCellStyle7.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255))))); + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; + this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + dataGridViewCellStyle8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + dataGridViewCellStyle8.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(200)))), ((int)(((byte)(255))))); + dataGridViewCellStyle8.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridView.DefaultCellStyle = dataGridViewCellStyle8; + this.dataGridView.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView.EnableHeadersVisualStyles = false; + this.dataGridView.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.dataGridView.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255))))); + this.dataGridView.Location = new System.Drawing.Point(0, 0); + this.dataGridView.Name = "uiDataGridView"; + dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255))))); + dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + dataGridViewCellStyle9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + dataGridViewCellStyle9.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255))))); + dataGridViewCellStyle9.SelectionForeColor = System.Drawing.Color.White; + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle9; + this.dataGridView.RowHeight = 25; + dataGridViewCellStyle10.BackColor = System.Drawing.Color.White; + this.dataGridView.RowsDefaultCellStyle = dataGridViewCellStyle10; + this.dataGridView.RowTemplate.Height = 25; + this.dataGridView.SelectedIndex = -1; + this.dataGridView.ShowGridLine = true; + this.dataGridView.Size = new System.Drawing.Size(385, 194); + this.dataGridView.TabIndex = 3; + // + // UIComboDataGridViewItem + // + this.Controls.Add(this.dataGridView); + this.Controls.Add(this.panel); + this.Name = "UIComboDataGridViewItem"; + this.Size = new System.Drawing.Size(385, 238); + this.panel.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); + this.ResumeLayout(false); + + } + + private void btnOK_Click(object sender, System.EventArgs e) + { + if (dataGridView.RowCount > 0 && dataGridView.SelectedIndex >= 0) + DoValueChanged(this, dataGridView.SelectedIndex); + CloseParent(); + } + + private void btnCancel_Click(object sender, System.EventArgs e) + { + CloseParent(); + } + } +} diff --git a/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.resx b/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.resx new file mode 100644 index 00000000..f298a7be --- /dev/null +++ b/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SunnyUI/Controls/UIComboDataGridView.cs b/SunnyUI/Controls/UIComboDataGridView.cs new file mode 100644 index 00000000..c26a642c --- /dev/null +++ b/SunnyUI/Controls/UIComboDataGridView.cs @@ -0,0 +1,92 @@ +/****************************************************************************** + * SunnyUI 开源控件库、工具类库、扩展类库、多页面开发框架。 + * CopyRight (C) 2012-2021 ShenYongHua(沈永华). + * QQ群:56829229 QQ:17612584 EMail:SunnyUI@QQ.Com + * + * Blog: https://www.cnblogs.com/yhuse + * Gitee: https://gitee.com/yhuse/SunnyUI + * GitHub: https://github.com/yhuse/SunnyUI + * + * SunnyUI.dll can be used for free under the GPL-3.0 license. + * If you use this code, please keep this note. + * 如果您使用此代码,请保留此说明。 + ****************************************************************************** + * 文件名称: UIComboDataGridView.cs + * 文件说明: 表格列表框 + * 当前版本: V3.0 + * 创建日期: 2021-09-01 + * + * 2020-09-01: V3.0.6 增加文件说明 +******************************************************************************/ + +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; +using static Sunny.UI.UIDataGridView; + +namespace Sunny.UI +{ + [ToolboxItem(true)] + public class UIComboDataGridView : UIDropControl, IToolTip + { + private void InitializeComponent() + { + this.SuspendLayout(); + // + // UIComboTreeView + // + this.DropDownStyle = Sunny.UI.UIDropDownStyle.DropDownList; + this.Name = "UIComboTreeView"; + this.Padding = new System.Windows.Forms.Padding(0, 0, 30, 0); + this.ButtonClick += UIComboDataGridView_ButtonClick; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + private void UIComboDataGridView_ButtonClick(object sender, System.EventArgs e) + { + ItemForm.Size = ItemSize; + item.ShowButtons = true; + item.Translate(); + ItemForm.Show(this); + } + + [DefaultValue(typeof(Size), "320, 240"), Description("下拉弹框界面大小"), Category("SunnyUI")] + public Size ItemSize { get; set; } = new Size(320, 240); + + public UIComboDataGridView() + { + InitializeComponent(); + fullControlSelect = true; + } + + public Control ExToolTipControl() + { + return edit; + } + + protected override void OnFontChanged(EventArgs e) + { + base.OnFontChanged(e); + if (item != null) item.DataGridView.Font = Font; + } + + private readonly UIComboDataGridViewItem item = new UIComboDataGridViewItem(); + + protected override void CreateInstance() + { + ItemForm = new UIDropDown(item); + } + + public UIDataGridView DataGridView => item.DataGridView; + + public event OnSelectIndexChange SelectIndexChange; + + protected override void ItemForm_ValueChanged(object sender, object value) + { + SelectIndexChange?.Invoke(this, value.ToString().ToInt()); + } + } +} diff --git a/SunnyUI/Controls/UIComboDataGridView.resx b/SunnyUI/Controls/UIComboDataGridView.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/SunnyUI/Controls/UIComboDataGridView.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SunnyUI/Controls/UIComboTreeView.cs b/SunnyUI/Controls/UIComboTreeView.cs index c4dbd8b3..2e88bf3f 100644 --- a/SunnyUI/Controls/UIComboTreeView.cs +++ b/SunnyUI/Controls/UIComboTreeView.cs @@ -31,7 +31,7 @@ namespace Sunny.UI [DefaultEvent("NodeSelected")] [DefaultProperty("Nodes")] [ToolboxItem(true)] - public class UIComboTreeView : UIDropControl,IToolTip + public class UIComboTreeView : UIDropControl, IToolTip { public UIComboTreeView() { diff --git a/SunnyUI/Static/USystem.cs b/SunnyUI/Static/USystem.cs index 5d1d5dd3..4fddc536 100644 --- a/SunnyUI/Static/USystem.cs +++ b/SunnyUI/Static/USystem.cs @@ -48,6 +48,15 @@ namespace Sunny.UI return new Rectangle(rect.Left, rect.Top, rect.Right - rect.Left, rect.Bottom - rect.Top); } + /// + /// 通知系统本程序已自行适配高DPI,不需要再对我进行缩放,Win7有用,Win10不一定有用。 + /// + public static void SetProcessDPIAware() + { + if (Environment.OSVersion.Version.Major >= 6) + User.SetProcessDPIAware(); + } + public static void EnabledTaskManager() { RegistryDisableTaskMgr(0); diff --git a/SunnyUI/Win32/Win32.Added.cs b/SunnyUI/Win32/Win32.Added.cs index 6d578f37..ebc16565 100644 --- a/SunnyUI/Win32/Win32.Added.cs +++ b/SunnyUI/Win32/Win32.Added.cs @@ -48,6 +48,9 @@ namespace Sunny.UI.Win32 [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool ShowScrollBar(IntPtr hWnd, int wBar, bool bShow); + + [DllImport("user32.dll")] + public static extern bool SetProcessDPIAware(); } public class Dwm