在 Windows Forms 应用程序中,DataGridView
是一个常用的控件,用于显示和编辑表格数据。如果你需要检查 DataGridView
中的某一列或某些单元格是否包含整数,有几种方法可以实现。以下是一些更好的方法来检查 DataGridView
是否包含整数。
int.TryParse
这是最直接的方法,通过遍历 DataGridView
的所有单元格,并使用 int.TryParse
检查每个单元格的值是否为整数。
private bool ContainsInteger(DataGridView dataGridView, int columnIndex)
{
foreach (DataGridViewRow row in dataGridView.Rows)
{
if (row.IsNewRow) continue; // 跳过新行
var cellValue = row.Cells[columnIndex].Value;
if (cellValue != null && int.TryParse(cellValue.ToString(), out _))
{
return true;
}
}
return false;
}
如果你喜欢使用 LINQ,可以将上述逻辑简化为一行代码。LINQ 提供了一种更简洁和声明式的方式来处理集合。
private bool ContainsInteger(DataGridView dataGridView, int columnIndex)
{
return dataGridView.Rows
.Cast<DataGridViewRow>()
.Where(row => !row.IsNewRow)
.Any(row => int.TryParse(row.Cells[columnIndex].Value?.ToString(), out _));
}
如果你需要在用户编辑单元格时实时检查,可以使用 DataGridView
的事件,如 CellValueChanged
或 CellEndEdit
。
private void dataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == yourColumnIndex) // 替换为你的列索引
{
var cellValue = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
if (cellValue != null && int.TryParse(cellValue.ToString(), out _))
{
// 该单元格包含整数
}
else
{
// 该单元格不包含整数
}
}
}
在表单的构造函数或 Load
事件中订阅这个事件:
public YourForm()
{
InitializeComponent();
dataGridView.CellValueChanged += dataGridView_CellValueChanged;
}
如果你的 DataGridView
是数据绑定的,可以在数据源中进行检查。例如,如果数据源是一个 DataTable
,你可以在 DataTable
中进行检查。
private bool ContainsInteger(DataTable dataTable, string columnName)
{
return dataTable.AsEnumerable()
.Any(row => int.TryParse(row[columnName]?.ToString(), out _));
}
然后在需要时调用这个方法:
bool containsInteger = ContainsInteger((DataTable)dataGridView.DataSource, "YourColumnName");
以上方法提供了不同的方式来检查 DataGridView
是否包含整数。选择哪种方法取决于你的具体需求和偏好:
DataGridView
。领取专属 10元无门槛券
手把手带您无忧上云