📅  最后修改于: 2023-12-03 15:35:13.898000             🧑  作者: Mango
在使用 C# 或 Python 编写程序时,可能会遇到 System.Windows.Forms.DataGridView.CurrentRow.get 返回 null 的问题。这个问题通常出现在尝试从 DataGridView 控件中获取当前选定行的数据时。
在访问 DataGridView.CurrentRow 属性之前,需要检查 DataGridView 控件中是否有选定行。可以使用以下代码:
if (dataGridView1.SelectedRows.Count > 0)
{
var currentRow = dataGridView1.CurrentRow;
// ...
}
else
{
// 没有选定行
}
if dataGridView1.SelectedRows.Count > 0:
currentRow = dataGridView1.CurrentRow
# ...
else:
# 没有选定行
在访问 DataGridView.CurrentRow 属性之前,需要确保 DataGridView 控件已正确初始化。可以在 Load 事件中添加以下代码:
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = myDataSource;
// 确保 DataGridView 控件已正确初始化
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}
def Form1_Load(sender, e):
dataGridView1.DataSource = myDataSource
# 确保 DataGridView 控件已正确初始化
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
form1.Load += Form1_Load
另一种解决方法是使用默认的 DataGridView.CellClick 事件来获取当前选定行的数据。可以使用以下代码:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
var currentRow = dataGridView1.Rows[e.RowIndex];
// ...
}
def dataGridView1_CellClick(sender, e):
currentRow = dataGridView1.Rows[e.RowIndex]
# ...
dataGridView1.CellClick += dataGridView1_CellClick
System.Windows.Forms.DataGridView.CurrentRow.get 返回 null 可能是因为未正确初始化 DataGridView 控件或未选定行,应谨慎处理这种情况并采取必要的措施来避免发生此类错误。