DGV に入力された値をリストに保存しています<T
>; これらは 10 進数の値であるか、何もない (空) です。空の場合、ヘルパー関数がそれらの空の val を 0 と見なすように、それらを null として表示する必要があります。ただし、この行は次のとおりです。
rrsr.DuckbillRate = Convert.ToDecimal(GetValAtColRow(colNumber, rowNumber));
...「入力文字列が正しい形式ではありません」で失敗することがあります (失敗した場合、変換しようとしている値は string.empty です):
セルの値を取得するためのヘルパー関数を次に示します。これにより、それらを List > に保存し、List ><T
に保存されているレコードの内容からセルを復元/再入力できます。<T
private string GetValAtColRow(int colNum, int rowNum)
{
DataGridViewRow desiredRow = dataGridViewPlatypi.Rows[rowNum];
return (desiredRow.Cells[colNum].Value ?? 0).ToString();
}
private void SetValAtColRow(int colNum, int rowNum, string val)
{
string convertedVal = val;
// If the value is 0, I want to display an empty cell (nothing)
if (convertedVal.Equals("0"))
{
convertedVal = string.Empty;
}
DataGridViewRow desiredRow = dataGridViewPlatypi.Rows[rowNum];
desiredRow.Cells[colNum].Value = convertedVal;
}