上传界面显示
This commit is contained in:
123
DH.Commons/Helper/UIHelper.cs
Normal file
123
DH.Commons/Helper/UIHelper.cs
Normal file
@ -0,0 +1,123 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DH.Commons.Enums
|
||||
{
|
||||
public static class UIHelper
|
||||
{
|
||||
public static void SetCombo(ComboBox cbo, object dataSource, string display, string value)
|
||||
{
|
||||
cbo.DataSource = dataSource;
|
||||
cbo.DisplayMember = display;
|
||||
if (!string.IsNullOrWhiteSpace(value))
|
||||
{
|
||||
cbo.ValueMember = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetCombo(ToolStripComboBox cbo, object dataSource, string display, string value)
|
||||
{
|
||||
cbo.ComboBox.DataSource = dataSource;
|
||||
cbo.ComboBox.DisplayMember = display;
|
||||
if (!string.IsNullOrWhiteSpace(value))
|
||||
{
|
||||
cbo.ComboBox.ValueMember = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetCombo(DataGridViewComboBoxColumn cbo, object dataSource, string display, string value)
|
||||
{
|
||||
cbo.DataSource = dataSource;
|
||||
cbo.DisplayMember = display;
|
||||
if (!string.IsNullOrWhiteSpace(value))
|
||||
{
|
||||
cbo.ValueMember = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region DataGridView设置列头为复选框
|
||||
public class DataGridViewCheckboxHeaderEventArgs : EventArgs
|
||||
{
|
||||
private bool checkedState = false;
|
||||
|
||||
public bool CheckedState
|
||||
{
|
||||
get { return checkedState; }
|
||||
set { checkedState = value; }
|
||||
}
|
||||
}
|
||||
|
||||
public delegate void DataGridViewCheckboxHeaderEventHander(object sender, DataGridViewCheckboxHeaderEventArgs e);
|
||||
public class DataGridViewCheckboxHeaderCell : DataGridViewColumnHeaderCell
|
||||
{
|
||||
Point checkBoxLocation;
|
||||
Size checkBoxSize;
|
||||
bool _checked = false;
|
||||
Point _cellLocation = new Point();
|
||||
System.Windows.Forms.VisualStyles.CheckBoxState _cbState = System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal;
|
||||
|
||||
public event DataGridViewCheckboxHeaderEventHander OnCheckBoxClicked;
|
||||
|
||||
//绘制列头checkbox
|
||||
protected override void Paint(System.Drawing.Graphics graphics,
|
||||
System.Drawing.Rectangle clipBounds,
|
||||
System.Drawing.Rectangle cellBounds,
|
||||
int rowIndex,
|
||||
DataGridViewElementStates dataGridViewElementState,
|
||||
object value,
|
||||
object formattedValue,
|
||||
string errorText,
|
||||
DataGridViewCellStyle cellStyle,
|
||||
DataGridViewAdvancedBorderStyle advancedBorderStyle,
|
||||
DataGridViewPaintParts paintParts)
|
||||
{
|
||||
base.Paint(graphics, clipBounds, cellBounds, rowIndex,
|
||||
dataGridViewElementState, value,
|
||||
formattedValue, errorText, cellStyle,
|
||||
advancedBorderStyle, paintParts);
|
||||
|
||||
Point p = new Point();
|
||||
Size s = CheckBoxRenderer.GetGlyphSize(graphics, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal);
|
||||
p.X = cellBounds.Location.X + (cellBounds.Width / 2) - (s.Width / 2) - 1; //列头checkbox的X坐标
|
||||
p.Y = cellBounds.Location.Y + (cellBounds.Height / 2) - (s.Height / 2); //列头checkbox的Y坐标
|
||||
_cellLocation = cellBounds.Location;
|
||||
checkBoxLocation = p;
|
||||
checkBoxSize = s;
|
||||
if (_checked)
|
||||
_cbState = System.Windows.Forms.VisualStyles.CheckBoxState.CheckedNormal;
|
||||
else
|
||||
_cbState = System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal;
|
||||
|
||||
CheckBoxRenderer.DrawCheckBox(graphics, checkBoxLocation, _cbState);
|
||||
}
|
||||
|
||||
///
|
||||
/// 点击列头checkbox单击事件
|
||||
///
|
||||
protected override void OnMouseClick(DataGridViewCellMouseEventArgs e)
|
||||
{
|
||||
Point p = new Point(e.X + _cellLocation.X, e.Y + _cellLocation.Y);
|
||||
if (p.X >= checkBoxLocation.X && p.X <= checkBoxLocation.X + checkBoxSize.Width
|
||||
&& p.Y >= checkBoxLocation.Y && p.Y <= checkBoxLocation.Y + checkBoxSize.Height)
|
||||
{
|
||||
_checked = !_checked;
|
||||
|
||||
//获取列头checkbox的选择状态
|
||||
DataGridViewCheckboxHeaderEventArgs ex = new DataGridViewCheckboxHeaderEventArgs();
|
||||
ex.CheckedState = _checked;
|
||||
|
||||
object sender = new object();//此处不代表选择的列头checkbox,只是作为参数传递。因为列头checkbox是绘制出来的,无法获得它的实例
|
||||
|
||||
if (OnCheckBoxClicked != null)
|
||||
{
|
||||
OnCheckBoxClicked(sender, ex);//触发单击事件
|
||||
DataGridView.InvalidateCell(this);
|
||||
}
|
||||
}
|
||||
base.OnMouseClick(e);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
Reference in New Issue
Block a user