سلام.
یک دیتاگرید ویو با چهار ستون ایجاد و مقدار دهی کنید سپس Enable Editing و Enable Adding رو غیر فعال کنید تا سلولها مقدار null نگیرن و استثنای NullReferenceExeption رخ نده، زمانی این استثنا رخ میده که شما سعی میکنید از چیزی که Null است استفاده کنید مثلا در کد زیر مقدار سلول به رشته تبدیل میشه و اگر مقدار سلول null باشه استثنای NullReferenceExeption رخ میده.
// خارج از رویدادها تعریف شود
struct EndValuesOfColumns
{
internal string column1;
internal string column2;
internal string column3;
internal string column4;
}
private void button1_Click(object sender, EventArgs e)
{
// در رویداد کلیک نوشته شود
EndValuesOfColumns columns;
columns.column1 = "";
columns.column2 = "";
columns.column3 = "";
columns.column4 = "";
int result = 0;
DataGridViewRow row = new DataGridViewRow();
for (int i = dataGridView1.Rows.Count - 1; i >= 0; i--)
{
row = this.dataGridView1.Rows[i];
if (columns.column1 == "" && !string.IsNullOrWhiteSpace(row.Cells["Column1"].Value.ToString()))
{
columns.column1 = row.Cells["Column1"].Value.ToString();
result++;
}
if (columns.column2 == "" && !string.IsNullOrWhiteSpace(row.Cells["Column2"].Value.ToString()))
{
columns.column2 = row.Cells["Column2"].Value.ToString();
result++;
}
if (columns.column3 == "" && !string.IsNullOrWhiteSpace(row.Cells["Column3"].Value.ToString()))
{
columns.column3 = row.Cells["Column3"].Value.ToString();
result++;
}
if (columns.column4 == "" && !string.IsNullOrWhiteSpace(row.Cells["Column4"].Value.ToString()))
{
columns.column4 = row.Cells["Column4"].Value.ToString();
result++;
}
if (result == 4)
{
break;
}
}
MessageBox.Show(string.Join(",", columns.column1, columns.column2, columns.column3, columns.column4));
}
اگر به توضیح بیشتری نیاز داشتید در خدمتم.