diff --git a/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs b/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs index 92d30128..ecc2a16c 100644 --- a/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs +++ b/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs @@ -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(); @@ -371,4 +379,4 @@ namespace Sunny.UI } } } -} +} \ No newline at end of file diff --git a/SunnyUI/Controls/UIComboDataGridView.cs b/SunnyUI/Controls/UIComboDataGridView.cs index d6066302..fe75c899 100644 --- a/SunnyUI/Controls/UIComboDataGridView.cs +++ b/SunnyUI/Controls/UIComboDataGridView.cs @@ -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)] diff --git a/SunnyUI/Controls/UIDataGridView.cs b/SunnyUI/Controls/UIDataGridView.cs index 4aa6bab1..084a1b48 100644 --- a/SunnyUI/Controls/UIDataGridView.cs +++ b/SunnyUI/Controls/UIDataGridView.cs @@ -271,7 +271,7 @@ namespace Sunny.UI CellBorderStyle = DataGridViewCellBorderStyle.None; //禁止行多选 - MultiSelect = false; + //MultiSelect = false; //不显示数据行标题 RowHeadersVisible = false;