1 核价查询功能优化 2 添加上传商品次数修改功能 3优化备货功能

This commit is contained in:
wule committed 2025-09-08 19:04:59 +08:00
1 parent c45254656b
commit fc017993df
22 files changed
+1661 -869

No files matched your search

+123 -3
View File
@@ -245,7 +245,7 @@ namespace TemuKJD.Extension
/// <param name="colNameCollection">单元格名称</param>
/// <param name="headerText">合并后的表头显示文字</param>
/// <param name="isEnableResizing">是否允许调整大小</param>
public static void MergeColumnHeader(this DataGridView dgv, List<string> colNameCollection, string headerText, bool isMultiLevelHeader = false)
public static void AddMergeColumnHeader(this DataGridView dgv, List<string> colNameCollection, string headerText, bool isMultiLevelHeader = false)
{
int nHeight = 0;
int nLeft = 0;
@@ -261,7 +261,8 @@ namespace TemuKJD.Extension
{
foreach(var columnName in colNameCollection)
{
dgv.InvalidateCell(dgv.Columns[columnName].HeaderCell); // 标记单元格为需要重绘
if (dgv.Columns.Contains(columnName))
dgv.InvalidateCell(dgv.Columns[columnName].HeaderCell); // 标记单元格为需要重绘
}
dgv.Update();
}
@@ -284,7 +285,8 @@ namespace TemuKJD.Extension
{
foreach (var columnName in colNameCollection)
{
dgv.InvalidateCell(dgv.Columns[columnName].HeaderCell); // 标记单元格为需要重绘
if (dgv.Columns.Contains(columnName))
dgv.InvalidateCell(dgv.Columns[columnName].HeaderCell); // 标记单元格为需要重绘
}
dgv.Update();
}
@@ -411,5 +413,123 @@ namespace TemuKJD.Extension
}
};
}
public static void AddMergeColumn(this DataGridView dgv, List<string> colNameCollection, Color? VerGridColor = null, Color? VerGridSelectColor = null)
{
int nHeight = 0;
int nLeft = 0;
int nTop = 0;
int nWidth = 0;
//合并列中某一列的列宽变化时,强制重绘表头
dgv.ColumnWidthChanged += (s, e) =>
{
if (colNameCollection.Contains(e.Column.Name))
{
foreach (var columnName in colNameCollection)
{
if (dgv.Columns.Contains(columnName))
dgv.InvalidateCell(dgv.Columns[columnName].HeaderCell); // 标记单元格为需要重绘
}
dgv.Update();
}
};
dgv.Scroll += (s, e) =>
{
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
{
bool tag = false;
foreach (var columnName in colNameCollection)
{
var bounds = dgv.Columns[columnName].HeaderCell.ContentBounds;
if (bounds.Left < 10 || bounds.Right > dgv.Width - 10)
{
tag = true;
break;
}
}
if (tag == true)
{
foreach (var columnName in colNameCollection)
{
if (dgv.Columns.Contains(columnName))
dgv.InvalidateCell(dgv.Columns[columnName].HeaderCell); // 标记单元格为需要重绘
}
dgv.Update();
}
}
};
//处理重绘事件
dgv.CellPainting += (s, e) =>
{
if (e.RowIndex >=0 && e.ColumnIndex >= 0) // 重绘单元格
{
string name = dgv.Columns[e.ColumnIndex].Name;
if (colNameCollection.Contains(name))
{
e.PaintBackground(e.CellBounds, true); // false不绘制单元格背景
e.PaintContent(e.CellBounds); // 绘制单元格内容,此处要绘制内容
Brush brush;
Pen pen;
if (colNameCollection.IndexOf(name) == 0)
{
nTop = e.CellBounds.Top;
nLeft = e.CellBounds.Left;
nWidth = e.CellBounds.Width;
nHeight = e.CellBounds.Height;
foreach (string str2 in colNameCollection)
{
if (!str2.Equals(name))
{
nWidth += dgv.Columns[str2].Width;
}
}
}
//填充背景(覆盖原来的分隔线)
//Rectangle rtTmp = new Rectangle(nLeft, nTop, nWidth, nHeight);
//using (brush = new SolidBrush(/*e.CellStyle.BackColor*/dgv.BackgroundColor))
//{
// var rtBounds = e.CellBounds;
// rtBounds.Height -= 1;
// e.Graphics.FillRectangle(brush, rtBounds);
//}
if (colNameCollection.IndexOf(name) < colNameCollection.Count - 1)
{
var penColor = VerGridColor;
// 分隔线
if (penColor == null)
{
//VerGridColor = Color.FromArgb(229, 229, 229);
penColor = e.RowIndex % 2 == 0 ? dgv.DefaultCellStyle.BackColor : dgv.AlternatingRowsDefaultCellStyle.BackColor;
}
var penSelectColor = VerGridSelectColor;
if (penSelectColor == null)
//VerGridColorSelect = Color.FromArgb(129, 129, 129);
penSelectColor = dgv.DefaultCellStyle.SelectionBackColor;
if ((dgv.Rows[e.RowIndex].Cells[e.ColumnIndex]).Selected)
{
using (pen = new Pen(penSelectColor.Value))
{
var rtBounds = e.CellBounds;
e.Graphics.DrawLine(pen, rtBounds.Right - 1, rtBounds.Top, rtBounds.Right - 1, rtBounds.Bottom - 2);
}
}
else
{
using (pen = new Pen(penColor.Value))
{
var rtBounds = e.CellBounds;
e.Graphics.DrawLine(pen, rtBounds.Right - 1, rtBounds.Top, rtBounds.Right - 1, rtBounds.Bottom - 2);
}
}
}
//e.set_Handled(true);
e.Handled = true; // 告知系统不再处理表头单元格绘制事件
}
}
};
}
}
}