我試圖通過相應列的值類型來驗證datagridview的輸入,這是我的代碼:如何驗證c#中列值類型的datagridview輸入?
private void dgvLoadTable_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
foreach (DataGridViewRow dr in dgvLoadTable.Rows)
{
foreach (DataGridViewCell dc in dr.Cells)
{
if (dc.GetType() == typeof(Int32) || dc.GetType() == typeof(Double))//if(dc.ColumnIndex==0)
{
DataGridViewTextBoxCell cell = dgvLoadTable[e.ColumnIndex, e.RowIndex] as DataGridViewTextBoxCell;
if (cell != null)
{
char[] chars = e.FormattedValue.ToString().ToCharArray();
foreach (char c in chars)
{
if (char.IsDigit(c) == false)
{
MessageBox.Show("You have to enter digits only");
e.Cancel = true;
break;
}} }
}
}
}
}
但是這是行不通的,應該是什麼的一些列的類型?僅供參考,這是一個winForm應用程序,不同的數據通過用戶選擇在運行時在datagridview中加載。所以列以前不知道。 datagridview綁定到實體模型。
當然有很多種嘗試/檢查類型的方法。取決於你想要測試的是什麼, – SebSky 2014-11-21 14:10:44
不能使用列索引或名稱,因爲哪個表將被加載到數據網格中是事先不知道的。我有10 +表,他們根據用戶選擇加載。 – Paradox 2014-11-21 14:35:53
是的,但使用上面你正在驗證某些單元格不是整個表...然後,您可以使用http://stackoverflow.com/a/894296/4123158檢查值是否爲「數字」 – SebSky 2014-11-24 09:36:31