* UIDataGridView: 更新单选时选中值SelectedIndex值

This commit is contained in:
Sunny 2022-01-21 09:52:05 +08:00
parent ebb549c15d
commit dd15808c62
2 changed files with 31 additions and 32 deletions

Binary file not shown.

View File

@ -11,7 +11,7 @@
* If you use this code, please keep this note.
* 使
******************************************************************************
* : UIGrid.cs
* : UIDataGridView.cs
* :
* : V3.1
* : 2020-01-01
@ -27,6 +27,7 @@
* 2021-04-29: V3.0.3
* 2021-05-22: V3.0.4 RowHeight23
* 2021-06-27: V3.0.4
* 2022-01-21: V3.1.0 SelectedIndex值
******************************************************************************/
using System;
@ -380,7 +381,6 @@ namespace Sunny.UI
Page
}
protected override void OnRowsAdded(DataGridViewRowsAddedEventArgs e)
{
base.OnRowsAdded(e);
@ -595,73 +595,72 @@ namespace Sunny.UI
}
}
private int selectedIndex = -1;
[Browsable(false)]
public int SelectedIndex
{
get => selectedIndex;
get
{
if (SelectedRows.Count > 0)
return SelectedRows[0].Index;
else
return -1;
}
set
{
if (Rows.Count == 0)
{
selectedIndex = -1;
return;
}
if (value >= 0 && value < Rows.Count)
{
foreach (DataGridViewRow row in SelectedRows)
{
row.Selected = false;
}
Rows[value].Selected = true;
selectedIndex = value;
FirstDisplayedScrollingRowIndex = value;
if (selectedIndex >= 0 && selectedIndex <= Rows.Count)
jumpIndex = selectedIndex;
selectedIndex = value;
SelectIndexChange?.Invoke(this, value);
}
else
{
selectedIndex = -1;
}
}
}
private int jumpIndex = -1;
protected override void OnDataSourceChanged(EventArgs e)
{
base.OnDataSourceChanged(e);
SetScrollInfo();
//selectedIndex = -1;
}
public delegate void OnSelectIndexChange(object sender, int index);
public event OnSelectIndexChange SelectIndexChange;
protected override void OnCellClick(DataGridViewCellEventArgs e)
protected override void OnRowEnter(DataGridViewCellEventArgs e)
{
base.OnCellClick(e);
base.OnRowEnter(e);
if (e.RowIndex >= 0 && selectedIndex != e.RowIndex)
if (e.RowIndex == jumpIndex)
{
jumpIndex = -1;
return;
}
if (selectedIndex != e.RowIndex)
{
selectedIndex = e.RowIndex;
SelectIndexChange?.Invoke(this, e.RowIndex);
}
}
// protected override void OnGridColorChanged(EventArgs e)
// {
// base.OnGridColorChanged(e);
// _style = UIStyle.Custom;
// }
//
// protected override void OnDefaultCellStyleChanged(EventArgs e)
// {
// base.OnDefaultCellStyleChanged(e);
// _style = UIStyle.Custom;
// }
//
// protected override void OnColumnDefaultCellStyleChanged(DataGridViewColumnEventArgs e)
// {
// base.OnColumnDefaultCellStyleChanged(e);
// _style = UIStyle.Custom;
// }
private int selectedIndex = -1;
public DataGridViewColumn AddColumn(string columnName, string dataPropertyName, int fillWeight = 100, DataGridViewContentAlignment alignment = DataGridViewContentAlignment.MiddleCenter, bool readOnly = true)
{