* UIDataGridView: 更新单选时选中值SelectedIndex值
This commit is contained in:
parent
ebb549c15d
commit
dd15808c62
Binary file not shown.
@ -11,7 +11,7 @@
|
|||||||
* If you use this code, please keep this note.
|
* If you use this code, please keep this note.
|
||||||
* 如果您使用此代码,请保留此说明。
|
* 如果您使用此代码,请保留此说明。
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* 文件名称: UIGrid.cs
|
* 文件名称: UIDataGridView.cs
|
||||||
* 文件说明: 表格
|
* 文件说明: 表格
|
||||||
* 当前版本: V3.1
|
* 当前版本: V3.1
|
||||||
* 创建日期: 2020-01-01
|
* 创建日期: 2020-01-01
|
||||||
@ -27,6 +27,7 @@
|
|||||||
* 2021-04-29: V3.0.3 设置数据行头部颜色
|
* 2021-04-29: V3.0.3 设置数据行头部颜色
|
||||||
* 2021-05-22: V3.0.4 增加了一个RowHeight,默认23
|
* 2021-05-22: V3.0.4 增加了一个RowHeight,默认23
|
||||||
* 2021-06-27: V3.0.4 自定义单元格颜色
|
* 2021-06-27: V3.0.4 自定义单元格颜色
|
||||||
|
* 2022-01-21: V3.1.0 更新单选时选中值SelectedIndex值
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
@ -380,7 +381,6 @@ namespace Sunny.UI
|
|||||||
Page
|
Page
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected override void OnRowsAdded(DataGridViewRowsAddedEventArgs e)
|
protected override void OnRowsAdded(DataGridViewRowsAddedEventArgs e)
|
||||||
{
|
{
|
||||||
base.OnRowsAdded(e);
|
base.OnRowsAdded(e);
|
||||||
@ -595,73 +595,72 @@ namespace Sunny.UI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int selectedIndex = -1;
|
|
||||||
|
|
||||||
[Browsable(false)]
|
[Browsable(false)]
|
||||||
public int SelectedIndex
|
public int SelectedIndex
|
||||||
{
|
{
|
||||||
get => selectedIndex;
|
get
|
||||||
|
{
|
||||||
|
if (SelectedRows.Count > 0)
|
||||||
|
return SelectedRows[0].Index;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (Rows.Count == 0)
|
if (Rows.Count == 0)
|
||||||
{
|
{
|
||||||
selectedIndex = -1;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value >= 0 && value < Rows.Count)
|
if (value >= 0 && value < Rows.Count)
|
||||||
{
|
{
|
||||||
|
foreach (DataGridViewRow row in SelectedRows)
|
||||||
|
{
|
||||||
|
row.Selected = false;
|
||||||
|
}
|
||||||
|
|
||||||
Rows[value].Selected = true;
|
Rows[value].Selected = true;
|
||||||
selectedIndex = value;
|
|
||||||
FirstDisplayedScrollingRowIndex = value;
|
FirstDisplayedScrollingRowIndex = value;
|
||||||
|
|
||||||
|
if (selectedIndex >= 0 && selectedIndex <= Rows.Count)
|
||||||
|
jumpIndex = selectedIndex;
|
||||||
|
|
||||||
|
selectedIndex = value;
|
||||||
SelectIndexChange?.Invoke(this, value);
|
SelectIndexChange?.Invoke(this, value);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
selectedIndex = -1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int jumpIndex = -1;
|
||||||
|
|
||||||
protected override void OnDataSourceChanged(EventArgs e)
|
protected override void OnDataSourceChanged(EventArgs e)
|
||||||
{
|
{
|
||||||
base.OnDataSourceChanged(e);
|
base.OnDataSourceChanged(e);
|
||||||
SetScrollInfo();
|
SetScrollInfo();
|
||||||
//selectedIndex = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public delegate void OnSelectIndexChange(object sender, int index);
|
public delegate void OnSelectIndexChange(object sender, int index);
|
||||||
|
|
||||||
public event OnSelectIndexChange SelectIndexChange;
|
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;
|
selectedIndex = e.RowIndex;
|
||||||
SelectIndexChange?.Invoke(this, e.RowIndex);
|
SelectIndexChange?.Invoke(this, e.RowIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// protected override void OnGridColorChanged(EventArgs e)
|
private int selectedIndex = -1;
|
||||||
// {
|
|
||||||
// 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;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public DataGridViewColumn AddColumn(string columnName, string dataPropertyName, int fillWeight = 100, DataGridViewContentAlignment alignment = DataGridViewContentAlignment.MiddleCenter, bool readOnly = true)
|
public DataGridViewColumn AddColumn(string columnName, string dataPropertyName, int fillWeight = 100, DataGridViewContentAlignment alignment = DataGridViewContentAlignment.MiddleCenter, bool readOnly = true)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user