Я заметил, что DatagridviewtextBoxColumn не приводится к десятичному типу. Я продемонстрировал это двумя способами:
DataTable : -
DataTable dt = new DataTable();
dt.Columns.Add("carats");
dt.Columns.Add("rate");
dt.Columns.Add("amount");
dataGridView1.DataSource = dt;
Работает нормально с кодом следующего приведения
private void dataGridView1_CellEndEdit(object sender,DataGridViewCellEventArgs e)
{
int b = dataGridView1.CurrentCell.RowIndex;
if (
dataGridView1[0, b].Value != DBNull.Value &&
dataGridView1[1, b].Value != DBNull.Value
)
{
dataGridView1[2, b].Value = Convert.ToDecimal(dataGridView1[0, b].Value.ToString())
* Convert.ToDecimal(dataGridView1[1, b].Value.ToString());
}
}
Но мое главное замечание о DatagridviewtextBoxColumn, что оно не передается почему ?.
2 DatagridviewtextboxColumn : -
DataGridViewTextBoxColumn cts = new DataGridViewTextBoxColumn();
dataGridView1.Columns.Insert(0, cts);
DataGridViewTextBoxColumn rt = new DataGridViewTextBoxColumn();
dataGridView1.Columns.Insert(1, rt);
DataGridViewTextBoxColumn amt = new DataGridViewTextBoxColumn();
dataGridView1.Columns.Insert(2, amt);
Это ошибка выброса, подобная «Исключение NullReference было отменено», «Ссылка на объект не устанавливает экземпляр для объекта« со следующим кодом:
private void dataGridView1_CellEndEdit(object sender,DataGridViewCellEventArgs e)
{
int b = dataGridView1.CurrentCell.RowIndex;
if (
dataGridView1[0, b].Value != DBNull.Value &&
dataGridView1[1, b].Value != DBNull.Value
)
{
dataGridView1[2, b].Value = Convert.ToDecimal(dataGridView1[0, b].Value.ToString())
* Convert.ToDecimal(dataGridView1[1, b].Value.ToString());
}
}
Я просто хочу знать причину этого. И решить проблему приведения с помощью DatagridviewtextBoxColumn