PDA

View Full Version : غیر فعال کردن یک سطر از دیتا گرید



mori_1367
شنبه 19 اردیبهشت 1388, 10:44 صبح
من یک دیتا گرید دارم که ستون های جدول دکتر را نشان می دهد یک ستون به نام وضعیت دارم که از نوع bit است هرگاه این ستون برابر صفر است آن دکتر غیر فعال می شود برنامه ام این کار را می کند حال باید این سطر از دیتا گرید که ستون وضعیت آن غیر فعال است ازحالت انتخاب خارج شود با چه کدی می توانم این سطر که نشان داده می شود غیر فعال کنم تا حالت انتخاب نداشته باشد؟

NewFoxStudent
شنبه 19 اردیبهشت 1388, 11:31 صبح
میتونی از یه حلقه استفاده کنی و ردیفهایی رو که میخوای ReadOnly کنی و بعد رنگ زمینه اونها رو عوض کنی

اگه نیاز به کد داری بگو

mori_1367
شنبه 19 اردیبهشت 1388, 19:58 عصر
بله لطفا کد بنویسید؟

NewFoxStudent
شنبه 19 اردیبهشت 1388, 20:13 عصر
foreach(DataGridViewRow row in dataGridView1.Rows)
if(shart)
row.ReadOnly=true;
row.BackColor = Color.Red;

mori_1367
شنبه 19 اردیبهشت 1388, 21:52 عصر
dataGridView1.DataSource = ds.Tables[0];
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (dataGridView1.Columns[7].ToString() == "False")
{
row.ReadOnly = true;

}

}
تابع search من dataset برمی گرداند و این کد به این شکل نوشتم عمل نمی کند اشکال از کجاست؟؟؟؟

NewFoxStudent
شنبه 19 اردیبهشت 1388, 22:10 عصر
foreach(DataGridViewRow row in dataGridView1.Rows)
if (row.Cells[7].Value.ToString() == "false")
{
row.ReadOnly = true;
}

mori_1367
شنبه 19 اردیبهشت 1388, 22:33 عصر
من دقیقا همین کد شما را می نویسم ولی می رود روی خط شرط و این error را می دهد چرا؟ چی کا کنم ؟؟؟Object reference not set to an instance of an object.

NewFoxStudent
شنبه 19 اردیبهشت 1388, 22:38 عصر
احتمالا سلولی که میخواید چک کنید CheckBox درسته؟

NewFoxStudent
شنبه 19 اردیبهشت 1388, 22:47 عصر
اگه اینطوره از این کد استفاده کنید


DataGridViewCheckBoxCell c;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
c = (DataGridViewCheckBoxCell)row.Cells[7];
row.ReadOnly = Convert.ToBoolean(c.Value);
}

NewFoxStudent
شنبه 19 اردیبهشت 1388, 22:48 عصر
ویا از این کد که ساده تره

foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.ReadOnly = Convert.ToBoolean(row.Cells[7].Value);
}

shahab_ss
یک شنبه 20 اردیبهشت 1388, 11:22 صبح
private void Grid1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (Grid1.Columns[e.ColumnIndex].Name.Equals("your_Field"))
{
if (Convert.ToBoolean(e.Value) == 0) // False
{
e.CellStyle.BackColor = Color.Red;
e.CellStyle.SelectionBackColor = Color.Red;
//do whatever you want
}
}

}

karimi84
چهارشنبه 13 خرداد 1388, 18:24 عصر
اين دستورات كه گفتيد در كجا برنامه بايد نوشت منظورم اين است كه كدام event گريد؟

asefy2008
چهارشنبه 13 خرداد 1388, 18:43 عصر
دوستمون shahab_ss رویدادش رو هم براتون گذاشت یعنی CellFormatting