From f9572ea0465f922c6762beac576b0914fe289938 Mon Sep 17 00:00:00 2001 From: wule Date: Sat, 9 May 2026 13:26:55 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E6=A0=B7=E5=BC=8F=E8=B0=83?= =?UTF-8?q?=E6=95=B4=20=20ai=E7=94=9F=E5=9B=BE=E9=80=BB=E8=BE=91=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/BaseClass.cs | 2 +- AllBase/Helper/GlobalConfig.cs | 16 ++-- TEMUKJD/BaseForms/BaseForm.cs | 59 +++++++------- TEMUKJD/Extension/DataGridViewExtension.cs | 11 ++- TEMUKJD/MainForm.cs | 5 +- .../PDDDBProdUserSelectForm.cs | 14 +++- .../DataGridViewCheckBoxColumnSelectAll.cs | 5 +- TEMUKJD/UserComponent/DataGridViewEx.cs | 40 ++++++++++ TEMUKJD/UserComponent/UcCheckBox.cs | 79 ++++++++++++------- .../WXAdminShopListForm.Designer.cs | 4 +- .../WXForms/AdminForms/WXAdminShopListForm.cs | 2 +- 11 files changed, 162 insertions(+), 75 deletions(-) diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 3f332f5..bd2e396 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 1051; + public static int VersionCount = 1052; //public static int VersionCount = 613; /// diff --git a/AllBase/Helper/GlobalConfig.cs b/AllBase/Helper/GlobalConfig.cs index 25e3dae..5ece097 100644 --- a/AllBase/Helper/GlobalConfig.cs +++ b/AllBase/Helper/GlobalConfig.cs @@ -67,13 +67,17 @@ namespace AllBase.Helper /// public static ConcurrentList PddClientInfoList = new ConcurrentList(); - public static System.Drawing.Color KJDMainColor = System.Drawing.Color.FromArgb(63, 126, 255); - public static System.Drawing.Color KJDMainColor2 = System.Drawing.Color.FromArgb(185, 215, 255); - public static System.Drawing.Color KJDBorderColor = System.Drawing.Color.FromArgb(25, 98, 200); + public static System.Drawing.Color DefaultMainColor { get; set; } = System.Drawing.Color.FromArgb(63, 126, 255); + public static System.Drawing.Color DefaultMainColorLight { get; set; } = System.Drawing.Color.FromArgb(185, 215, 255); + public static System.Drawing.Color DefaultBorderColor { get; set; } = System.Drawing.Color.FromArgb(25, 98, 200); - public static System.Drawing.Color PddMainColor = System.Drawing.Color.FromArgb(225, 120, 135); - public static System.Drawing.Color PddMainColor2 = System.Drawing.Color.FromArgb(255, 235, 245); - public static System.Drawing.Color PddBorderColor = System.Drawing.Color.FromArgb(195, 112, 135); + public static System.Drawing.Color MainColor { get; set; } = System.Drawing.Color.FromArgb(63, 126, 255); + public static System.Drawing.Color MainColorLight { get; set; } = System.Drawing.Color.FromArgb(185, 215, 255); + public static System.Drawing.Color BorderColor { get; set; } = System.Drawing.Color.FromArgb(25, 98, 200); + + public static System.Drawing.Color PddMainColor { get; set; } = System.Drawing.Color.FromArgb(225, 120, 135); + public static System.Drawing.Color PddMainColorLight { get; set; } = System.Drawing.Color.FromArgb(255, 235, 245); + public static System.Drawing.Color PddBorderColor { get; set; } = System.Drawing.Color.FromArgb(195, 112, 135); } public enum ShopPlatform diff --git a/TEMUKJD/BaseForms/BaseForm.cs b/TEMUKJD/BaseForms/BaseForm.cs index bd10b1b..5f1a24c 100644 --- a/TEMUKJD/BaseForms/BaseForm.cs +++ b/TEMUKJD/BaseForms/BaseForm.cs @@ -103,68 +103,71 @@ namespace TemuKJD.BaseForms setSkinColor(c); // pdd皮肤颜色 - if (BaseClass.MainPath == "binxixi") + if (BaseClass.MainPath == "binxixi" || BaseClass.MainPath == "weixin") { - if (c is Panel && c.BackColor == GlobalConfig.KJDMainColor) + if (c is Panel && c.BackColor == GlobalConfig.DefaultMainColor) { - c.BackColor = GlobalConfig.PddMainColor; + c.BackColor = GlobalConfig.MainColor; } if (c is PanelEx && c.Name.StartsWith("btn")) { var pnl = c as PanelEx; - if (pnl.Style.BackColor1.Color == GlobalConfig.KJDMainColor) + if (pnl.Style.BackColor1.Color == GlobalConfig.DefaultMainColor) { - pnl.Style.BackColor1.Color = GlobalConfig.PddMainColor; - pnl.Style.BackColor2.Color = GlobalConfig.PddMainColor; - pnl.StyleMouseOver.BackColor1.Color = GlobalConfig.PddBorderColor; - pnl.StyleMouseOver.BackColor2.Color = GlobalConfig.PddBorderColor; + pnl.Style.BackColor1.Color = GlobalConfig.MainColor; + pnl.Style.BackColor2.Color = GlobalConfig.MainColor; + pnl.StyleMouseOver.BackColor1.Color = GlobalConfig.BorderColor; + pnl.StyleMouseOver.BackColor2.Color = GlobalConfig.BorderColor; } - else if (pnl.Style.BorderColor.Color == GlobalConfig.KJDMainColor) + else if (pnl.Style.BorderColor.Color == GlobalConfig.DefaultMainColor) { - pnl.Style.BorderColor.Color = GlobalConfig.PddMainColor; - pnl.Style.BackColor1.Color = GlobalConfig.PddMainColor2; - pnl.Style.BackColor2.Color = GlobalConfig.PddMainColor2; - pnl.Style.ForeColor.Color = GlobalConfig.PddBorderColor; - pnl.StyleMouseOver.BackColor1.Color = GlobalConfig.PddBorderColor; - pnl.StyleMouseOver.BackColor2.Color = GlobalConfig.PddBorderColor; + pnl.Style.BorderColor.Color = GlobalConfig.MainColor; + pnl.Style.BackColor1.Color = GlobalConfig.MainColorLight; + pnl.Style.BackColor2.Color = GlobalConfig.MainColorLight; + pnl.Style.ForeColor.Color = GlobalConfig.BorderColor; + pnl.StyleMouseOver.BackColor1.Color = GlobalConfig.BorderColor; + pnl.StyleMouseOver.BackColor2.Color = GlobalConfig.BorderColor; } } if (c is ButtonEx) { - c.BackColor = GlobalConfig.PddMainColor; + c.BackColor = GlobalConfig.MainColor; } - if (c is SplitContainer && c.BackColor == GlobalConfig.KJDMainColor) + if (c is SplitContainer && c.BackColor == GlobalConfig.DefaultMainColor) { - c.BackColor = GlobalConfig.PddMainColor; + c.BackColor = GlobalConfig.MainColor; } if (c is UserComponent.UcTreeView) { var tv = c as UserComponent.UcTreeView; - tv.ChildNodeSelectedBgColor = GlobalConfig.PddMainColor; + tv.ChildNodeSelectedBgColor = GlobalConfig.MainColor; } - if (c is UserComponent.UcGroupBoxEx && (c as UserComponent.UcGroupBoxEx).BorderColor == GlobalConfig.KJDMainColor) + if (c is UserComponent.UcGroupBoxEx && (c as UserComponent.UcGroupBoxEx).BorderColor == GlobalConfig.DefaultMainColor) { var gb = c as UserComponent.UcGroupBoxEx; - gb.BorderColor = GlobalConfig.PddMainColor; + gb.BorderColor = GlobalConfig.MainColor; } if (c is UserComponent.DataGridViewEx) { var dgv = c as UserComponent.DataGridViewEx; - dgv.BorderColor = GlobalConfig.PddMainColor; - dgv.DefaultCellStyle.SelectionBackColor = GlobalConfig.PddMainColor; + dgv.BorderColor = GlobalConfig.MainColor; + dgv.DefaultCellStyle.SelectionBackColor = GlobalConfig.MainColor; + + dgv.CheckBoxRowBoxCheckColor = GlobalConfig.MainColor; + dgv.CheckBoxRowBoxBorderColor = GlobalConfig.BorderColor; } if (c is UserComponent.UcCheckBox) { var chk = c as UserComponent.UcCheckBox; - chk.CheckBoxCheckColor = GlobalConfig.PddMainColor; - chk.CheckBoxBorderColor = GlobalConfig.PddBorderColor; + chk.CheckBoxCheckColor = GlobalConfig.MainColor; + chk.CheckBoxBorderColor = GlobalConfig.BorderColor; } if (c is UcTabControlMetro) { var tc = c as UcTabControlMetro; - tc.BorderColor = GlobalConfig.PddBorderColor; - tc.TabSelectColor = GlobalConfig.PddMainColor; - tc.TabSelectTextColor = GlobalConfig.PddMainColor; + tc.BorderColor = GlobalConfig.BorderColor; + tc.TabSelectColor = GlobalConfig.MainColor; + tc.TabSelectTextColor = GlobalConfig.MainColor; } } } diff --git a/TEMUKJD/Extension/DataGridViewExtension.cs b/TEMUKJD/Extension/DataGridViewExtension.cs index 1db717b..d738fc2 100644 --- a/TEMUKJD/Extension/DataGridViewExtension.cs +++ b/TEMUKJD/Extension/DataGridViewExtension.cs @@ -1,4 +1,5 @@ using AllBase; +using AllBase.Helper; using NaiBa.Util; using NaiBa.Util.Extension; using System; @@ -12,6 +13,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; +using TemuKJD.UserComponent; namespace TemuKJD.Extension { @@ -22,7 +24,7 @@ namespace TemuKJD.Extension return CellCollection.Cast().FirstOrDefault(c => c.OwningColumn.Name == name)?.Value; } - public static CheckBox AddSelectorColumn(this DataGridView dgv, string columnName = "Selected", Action addHeaderCheckBoxOverride = null) + public static UcCheckBox AddSelectorColumn(this DataGridView dgv, string columnName = "Selected", Action addHeaderCheckBoxOverride = null) { if (dgv.Columns[columnName] == null) { @@ -53,7 +55,7 @@ namespace TemuKJD.Extension } } - public static CheckBox AddHeaderCheckBox(this DataGridViewColumn column, HorizontalAlignment align = HorizontalAlignment.Center, int leftBorderOffset = 0, int rightBorderOffset = 0, Func getValue = null, Action setValue = null, bool isSetCheckedChangedEvent = true, CheckBox checkBox = null, bool isClearHeaderText = false) + public static UcCheckBox AddHeaderCheckBox(this DataGridViewColumn column, HorizontalAlignment align = HorizontalAlignment.Center, int leftBorderOffset = 0, int rightBorderOffset = 0, Func getValue = null, Action setValue = null, bool isSetCheckedChangedEvent = true, UcCheckBox checkBox = null, bool isClearHeaderText = false) { if (column?.DataGridView == null) //throw new ArgumentNullException("First you need to add the column to grid."); MessageBox.Show("DataGridView中没有对应的CheckBox列"); @@ -61,10 +63,11 @@ namespace TemuKJD.Extension // Creating checkbox without panel if (checkBox == null) { - checkBox = new CheckBox(); + checkBox = new UcCheckBox(); + checkBox.Name = "chk" + column.Name; } - checkBox.Size = new Size(24, 20); + checkBox.Size = new Size(13, 13); checkBox.BackColor = Color.Transparent; checkBox.Enabled = true; diff --git a/TEMUKJD/MainForm.cs b/TEMUKJD/MainForm.cs index d21ed26..7a6dd35 100644 --- a/TEMUKJD/MainForm.cs +++ b/TEMUKJD/MainForm.cs @@ -154,6 +154,9 @@ namespace TemuKJD if (loginType == "Pdd") { BaseClass.MainPath = "binxixi"; + GlobalConfig.MainColor = GlobalConfig.PddMainColor; + GlobalConfig.MainColorLight = GlobalConfig.PddMainColorLight; + GlobalConfig.BorderColor = GlobalConfig.PddBorderColor; this.pnlJit.Visible = false; } else if (loginType == "Dy") @@ -247,7 +250,7 @@ namespace TemuKJD navPanel.Style.BackgroundImage = Properties.Resources.pdd_bg; plTopRight.BackgroundImage = null; this.BackColor = GlobalConfig.PddBorderColor; - lblVersionInfo.ForeColor = GlobalConfig.PddMainColor2; + lblVersionInfo.ForeColor = GlobalConfig.PddMainColorLight; BaseClass.ToolName = "29供应链 - 多多管理工具"; } diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs index cc6ce40..e1d8bd7 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs @@ -7698,6 +7698,7 @@ Content-Type: image/jpeg })); List tList = new List(); + List errStrLst = new List(); foreach (var sku in prodInfo.detail.sku) { while (tList.Count >= 10) @@ -7734,13 +7735,18 @@ Content-Type: image/jpeg var pddUpImgApi = new PddApi(shop); pddUpImgApi.Data["image"] = "data:image/jpeg;base64," + imgBase64; var pddUpImgApiRst = pddUpImgApi.PddGoodsImageUpload(); + if (!pddUpImgApiRst.Contains("\"goods_image_upload_response\"")) + pddUpImgApiRst = pddUpImgApi.PddGoodsImageUpload(); if (!pddUpImgApiRst.Contains("\"goods_image_upload_response\"")) pddUpImgApiRst = pddUpImgApi.PddGoodsImageUpload(); if (!pddUpImgApiRst.Contains("\"goods_image_upload_response\"")) { errMsg = BaseRegex.GetStringJson(ref pddUpImgApiRst, "error_msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = BaseRegex.GetStringJson(ref pddUpImgApiRst, "errorMsg"); if (string.IsNullOrEmpty(errMsg)) errMsg = pddUpImgApiRst; + errStrLst.Add("生成Sku图片错误 " + errMsg); return "生成Sku图片错误 " + errMsg; } var thumb_url = BaseRegex.GetStringJson(ref pddUpImgApiRst, "image_url"); @@ -7748,7 +7754,8 @@ Content-Type: image/jpeg } else { - + errStrLst.Add("生成Ai图片错误 " + html); + return "生成Ai图片错误 " + html; } return html; } @@ -7764,6 +7771,11 @@ Content-Type: image/jpeg Thread.Sleep(500); tList.RemoveAll(t => t.IsCanceled || t.IsFaulted || t.IsCompleted); } + // 错误超过一定数量直接报错返回 + if (errStrLst.Count > 0 && errStrLst.Count >= prodInfo.detail.sku.Count / 3) + { + return string.Join(",", errStrLst); + } // 重新设置ai主图 var newMainImgLst = prodInfo.detail.sku.Select(s => s.thumb_url).OrderBy(x => Guid.NewGuid()).ToList(); diff --git a/TEMUKJD/UserComponent/DataGridViewCheckBoxColumnSelectAll.cs b/TEMUKJD/UserComponent/DataGridViewCheckBoxColumnSelectAll.cs index 4a0bd81..33a6dcf 100644 --- a/TEMUKJD/UserComponent/DataGridViewCheckBoxColumnSelectAll.cs +++ b/TEMUKJD/UserComponent/DataGridViewCheckBoxColumnSelectAll.cs @@ -9,6 +9,9 @@ using System.Windows.Forms.VisualStyles; namespace TemuKJD.UserComponent { + /// + /// 带表头全选的选择框列 + /// public class DataGridViewCheckBoxColumnSelectAll : DataGridViewCheckBoxColumn { private DatagridViewCheckBoxHeaderCell headerCell; @@ -100,7 +103,6 @@ namespace TemuKJD.UserComponent } } - /// /// 头被选中时触发OnCheckBoxClicked事件. /// @@ -113,7 +115,6 @@ namespace TemuKJD.UserComponent } } - public delegate void CheckBoxClickedHandler(bool state); internal class DatagridViewCheckBoxHeaderCell : DataGridViewColumnHeaderCell diff --git a/TEMUKJD/UserComponent/DataGridViewEx.cs b/TEMUKJD/UserComponent/DataGridViewEx.cs index f07bfad..108977b 100644 --- a/TEMUKJD/UserComponent/DataGridViewEx.cs +++ b/TEMUKJD/UserComponent/DataGridViewEx.cs @@ -28,6 +28,8 @@ namespace TemuKJD.UserComponent ControlStyles.AllPaintingInWmPaint, true); + this.CellPainting += DataGridViewEx_CellPainting; + Task.Run(() => { for (int i = 0; i < 50; i++) @@ -190,6 +192,44 @@ namespace TemuKJD.UserComponent e.Graphics.DrawRectangle(new Pen(this.BorderColor), new Rectangle(0, 0, this.Width - 1, this.Height - 1)); } + private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) + { + //if (e.ColumnIndex == yourCheckBoxColumnIndex && e.RowIndex >= 0) + //{ + // bool isChecked = (bool)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value; + // Rectangle checkBoxBounds = new Rectangle(e.CellBounds.Location.X + 10, e.CellBounds.Location.Y + (e.CellBounds.Height - 20) / 2, 20, 20); // 自定义大小和位置 + // ControlPaint.DrawCheckBox(e.Graphics, checkBoxBounds, DataGridViewState.Default, isChecked); // 绘制复选框 + // e.Handled = true; // 阻止默认绘制 + //} + } + + + private int checkBoxSize = 12; + public Color CheckBoxColor = Color.White; + public Color CheckBoxRowBoxCheckColor = Color.Blue; + public Color CheckBoxRowBoxBorderColor = Color.Blue; + + private void DataGridViewEx_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) + { + if (e.ColumnIndex >= 0 && e.RowIndex >= 0) + { + var cellTmp = this.Rows[e.RowIndex].Cells[e.ColumnIndex]; + if (cellTmp is DataGridViewCheckBoxCell) + { + e.PaintBackground(e.CellBounds, true); + + bool isChecked = (bool)cellTmp.Value; + var locationX = e.CellBounds.Location.X + e.CellBounds.Width / 2 - checkBoxSize / 2 - 1; + var locationY = e.CellBounds.Location.Y + e.CellBounds.Height / 2 - checkBoxSize / 2; + Rectangle checkBoxBounds = new Rectangle(locationX, locationY, checkBoxSize, checkBoxSize); // 自定义大小和位置 + //ControlPaint.DrawCheckBox(e.Graphics, checkBoxBounds, isChecked ? ButtonState.Checked : ButtonState.Normal); // 绘制复选框 + UcCheckBox.DrawCheckBoxIcon(e.Graphics, checkBoxBounds, isChecked, CheckBoxColor, CheckBoxRowBoxCheckColor, CheckBoxRowBoxBorderColor); + + e.Handled = true; // 阻止默认绘制 + } + } + } + private bool multiSelectCheckBox = true; /// /// 选择框批量选中(使用Shift按键) diff --git a/TEMUKJD/UserComponent/UcCheckBox.cs b/TEMUKJD/UserComponent/UcCheckBox.cs index 4cfad71..fb697c7 100644 --- a/TEMUKJD/UserComponent/UcCheckBox.cs +++ b/TEMUKJD/UserComponent/UcCheckBox.cs @@ -1,4 +1,5 @@ -using System; +using AllBase.Helper; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; @@ -16,38 +17,45 @@ namespace TemuKJD.UserComponent public UcCheckBox() { InitializeComponent(); + this.CheckBoxCheckColor = GlobalConfig.MainColor; + this.CheckBoxBorderColor = GlobalConfig.BorderColor; } public UcCheckBox(IContainer container) { container.Add(this); + this.CheckBoxCheckColor = GlobalConfig.MainColor; + this.CheckBoxBorderColor = GlobalConfig.BorderColor; InitializeComponent(); } private int checkBoxSize = 12; public Color CheckBoxColor = Color.White; - public Color CheckBoxCheckColor = Color.Blue; - public Color CheckBoxBorderColor = Color.Blue; + public Color CheckBoxCheckColor = GlobalConfig.DefaultMainColor; + public Color CheckBoxBorderColor = GlobalConfig.DefaultBorderColor; protected override void OnPaint(PaintEventArgs e) { - //base.OnPaint(e); // 禁用系统绘制 + //base.OnPaint(e); // 禁用系统绘制全部 + base.OnPaintBackground(e); // 使用系统绘制背景 //if (e.ClipRectangle.X != 0 || e.ClipRectangle.Y != 0) // return; Graphics g = e.Graphics; - g.Clear(this.BackColor); + //g.Clear(this.CheckBoxColor); //填充背景色 //g.FillRectangle(new SolidBrush(this.BackColor), e.ClipRectangle); g.FillRectangle(new SolidBrush(this.BackColor), this.ClientRectangle); - - //绘制圆形(注释此句,以备后用) - //Brush brush = new SolidBrush(this.Checked ? checkBoxCheckColor : checkBoxColor); - //g.FillEllipse(brush, 0, (Height - checkBoxSize) / 2, checkBoxSize, checkBoxSize); // 绘制圆形按钮 + Size size = TextRenderer.MeasureText(this.Text, Font); + e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; // 或者 AntiAliasGridFit // 平滑字体 + //e.Graphics.DrawString(this.Text, Font, new SolidBrush(this.ForeColor), + // new PointF(e.ClipRectangle.X + checkBoxSize + 2 + Padding.Left, e.ClipRectangle.Y + (Height - size.Height) / 2)); + e.Graphics.DrawString(this.Text, Font, new SolidBrush(this.ForeColor), + new PointF(this.ClientRectangle.X + checkBoxSize + 2 + Padding.Left, this.ClientRectangle.Y + (Height - size.Height) / 2)); Rectangle rt = new Rectangle(); rt.X = 0; @@ -55,28 +63,41 @@ namespace TemuKJD.UserComponent rt.Width = checkBoxSize; rt.Height = checkBoxSize; - Color color = this.Checked ? CheckBoxCheckColor : CheckBoxColor; - DrawRoundedRectangle(g, rt, 2, color, true); - DrawRoundedRectangle(g, rt, 2, CheckBoxBorderColor); - - if (this.Checked) - { - // 绘制勾号 - Pen p = new Pen(Color.FromArgb(180, 255, 255, 255)); - //g.DrawLine(Pens.SkyBlue, rt.X + 3, rt.Y + 6, rt.X + 5, rt.Y + 8); - //g.DrawLine(Pens.SkyBlue, rt.X + 5, rt.Y + 8, rt.X + 9, rt.Y + 4); - g.DrawLine(p, rt.X + 3, rt.Y + 6, rt.X + 5, rt.Y + 8); - g.DrawLine(p, rt.X + 5, rt.Y + 8, rt.X + 9, rt.Y + 4); - } - Size size = TextRenderer.MeasureText(this.Text, Font); - e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; // 或者 AntiAliasGridFit // 平滑字体 - //e.Graphics.DrawString(this.Text, Font, new SolidBrush(this.ForeColor), - // new PointF(e.ClipRectangle.X + checkBoxSize + 2 + Padding.Left, e.ClipRectangle.Y + (Height - size.Height) / 2)); - e.Graphics.DrawString(this.Text, Font, new SolidBrush(this.ForeColor), - new PointF(this.ClientRectangle.X + checkBoxSize + 2 + Padding.Left, this.ClientRectangle.Y + (Height - size.Height) / 2)); + DrawCheckBoxIcon(g, rt, this.Checked, this.CheckBoxColor, this.CheckBoxCheckColor, this.CheckBoxBorderColor); } - private void DrawRoundedRectangle(Graphics g, Rectangle rect, int radius, Color color, bool isFill = false) + public static void DrawCheckBoxIcon(Graphics g, Rectangle rt, bool isChecked, Color checkBoxColor, Color checkBoxCheckColor, Color checkBoxBorderColor) + { + //绘制圆形(注释此句,以备后用) + //Brush brush = new SolidBrush(this.Checked ? checkBoxCheckColor : checkBoxColor); + //g.FillEllipse(brush, 0, (Height - checkBoxSize) / 2, checkBoxSize, checkBoxSize); // 绘制圆形按钮 + + Color color = isChecked ? checkBoxCheckColor : checkBoxColor; + + if (isChecked) + { + DrawRoundedRectangle(g, rt, 2, color, true); + DrawRoundedRectangle(g, rt, 2, checkBoxBorderColor); + + // 绘制勾号 + Pen p = new Pen(Color.FromArgb(220, 255, 255, 255), 1); + //g.DrawLine(Pens.SkyBlue, rt.X + 3, rt.Y + 6, rt.X + 5, rt.Y + 8); + //g.DrawLine(Pens.SkyBlue, rt.X + 5, rt.Y + 8, rt.X + 9, rt.Y + 4); + g.DrawLine(p, rt.X + 3, rt.Y + 5, rt.X + 5, rt.Y + 7); + g.DrawLine(p, rt.X + 5, rt.Y + 7, rt.X + 9, rt.Y + 3); + g.DrawLine(p, rt.X + 3, rt.Y + 6, rt.X + 5, rt.Y + 8); + g.DrawLine(p, rt.X + 5, rt.Y + 8, rt.X + 9, rt.Y + 4); + g.DrawLine(p, rt.X + 3, rt.Y + 7, rt.X + 5, rt.Y + 9); + g.DrawLine(p, rt.X + 5, rt.Y + 9, rt.X + 9, rt.Y + 5); + } + else + { + DrawRoundedRectangle(g, rt, 3, color, true); + DrawRoundedRectangle(g, rt, 3, checkBoxBorderColor); + } + } + + public static void DrawRoundedRectangle(Graphics g, Rectangle rect, int radius, Color color, bool isFill = false) { using (GraphicsPath path = new GraphicsPath()) { diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.Designer.cs index ab33fc4..a8d0cdb 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.Designer.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.Designer.cs @@ -72,7 +72,7 @@ namespace TemuKJD.WXForms.AdminForms this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.panel3 = new System.Windows.Forms.Panel(); - this.colSelect = new TemuKJD.UserComponent.DataGridViewCheckBoxColumnSelectAll(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colShopAccount = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -1055,7 +1055,7 @@ namespace TemuKJD.WXForms.AdminForms private System.Windows.Forms.Panel panel3; public System.Windows.Forms.Label lblAddToAccount; public DevComponents.DotNetBar.PanelEx btnAddToAccount; - private UserComponent.DataGridViewCheckBoxColumnSelectAll colSelect; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName; private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; private System.Windows.Forms.DataGridViewTextBoxColumn colShopAccount; diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.cs index 4565914..8406db8 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.cs @@ -47,7 +47,7 @@ namespace TemuKJD.WXForms.AdminForms { this.ucSplitPage1.PageChange += UcSplitPage1_PageChange; - //this.dgvShop.AddSelectorColumn("colSelect"); + this.dgvShop.AddSelectorColumn("colSelect"); this.dgvShop.AddMergeColumnHeader(new List() { /*"colMinus",*/ "colProductRemaining", "colPlus" }, "选品限额"); this.dgvShop.AddMergeColumn(new List() { /*"colMinus",*/ "colProductRemaining", "colPlus" }); this.dgvShop.Columns["colMinus"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;