* UIComboDataGridView: 增加行多选

This commit is contained in:
Sunny 2022-04-16 23:06:58 +08:00
parent 1ab593385b
commit 95776600e3
3 changed files with 35 additions and 10 deletions

View File

@ -30,7 +30,8 @@ namespace Sunny.UI
private void DataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
btnOK.PerformClick();
if (!dataGridView.MultiSelect)
btnOK.PerformClick();
}
public override void SetDPIScale()
@ -294,10 +295,17 @@ namespace Sunny.UI
//UConsole.WriteConsole("所选行:"+dataGridView.SelectedIndex.ToString(),e,sender);
if (dataGridView.RowCount > 0 && dataGridView.SelectedIndex >= 0)
{
if (ShowFilter)
DoValueChanged(this, dataGridView.SelectedRows.Count > 0 ? dataGridView.SelectedRows[0] : null);
if (dataGridView.MultiSelect)
{
DoValueChanged(this, dataGridView.SelectedRows);
}
else
DoValueChanged(this, dataGridView.SelectedIndex);
{
if (ShowFilter)
DoValueChanged(this, dataGridView.SelectedRows.Count > 0 ? dataGridView.SelectedRows[0] : null);
else
DoValueChanged(this, dataGridView.SelectedIndex);
}
}
Close();

View File

@ -19,6 +19,7 @@
* 2020-09-01: V3.0.6
* 2021-11-05: V3.0.8
* 2022-03-22: V3.1.1
* 2022-04-16: V3.1.3
******************************************************************************/
using System;
@ -45,7 +46,6 @@ namespace Sunny.UI
this.ButtonClick += UIComboDataGridView_ButtonClick;
this.ResumeLayout(false);
this.PerformLayout();
}
private void UIComboDataGridView_ButtonClick(object sender, EventArgs e)
@ -78,6 +78,7 @@ namespace Sunny.UI
base.OnFontChanged(e);
if (item != null) item.DataGridView.Font = Font;
}
[DefaultValue(false)]
public bool ShowFilter { get; set; }
@ -88,20 +89,36 @@ namespace Sunny.UI
ItemForm = new UIDropDown(item);
}
[DefaultValue(false), Description("行多选"), Category("SunnyUI")]
public bool MultiSelect
{
get => DataGridView.MultiSelect;
set => DataGridView.MultiSelect = value;
}
public UIDataGridView DataGridView => item.DataGridView;
public event OnSelectIndexChange SelectIndexChange;
public delegate void OnValueChanged(object sender, object value);
public delegate void OnValuesChanged(object sender, DataGridViewSelectedRowCollection value);
public event OnValueChanged ValueChanged;
public event OnValuesChanged MultiValueChanged;
protected override void ItemForm_ValueChanged(object sender, object value)
{
if (ShowFilter)
ValueChanged?.Invoke(this, value);
if (MultiSelect)
{
MultiValueChanged?.Invoke(this, (DataGridViewSelectedRowCollection)value);
}
else
SelectIndexChange(this, value.ToString().ToInt());
{
if (ShowFilter)
ValueChanged?.Invoke(this, value);
else
SelectIndexChange(this, value.ToString().ToInt());
}
}
[DefaultValue(null)]

View File

@ -271,7 +271,7 @@ namespace Sunny.UI
CellBorderStyle = DataGridViewCellBorderStyle.None;
//禁止行多选
MultiSelect = false;
//MultiSelect = false;
//不显示数据行标题
RowHeadersVisible = false;