PDA

View Full Version : سوال: دلیل عمل نکردن شرط زیر ، هیچ عکس العملی انجام نمیشه!!



r4hgozar
یک شنبه 10 فروردین 1393, 10:31 صبح
من این کد رو نوشتم تا در صورت چک دار بودن چک باکس در دیتاگرید ویو داده در لیست باکس ذخیره بشه.
اما هیچ عکس العملی انجام نمیشه.
private void button3_Click(object sender, EventArgs e)
{
i = 0;
foreach (DataGridViewRow row in dgw2.Rows)
{

if (Convert.ToBoolean(dgw2.Rows[i].Cells[0].Value)== true)
{
id = Convert.ToInt32(dgw2.Rows[i].Cells[1].Value);
listBox1.Items.Add(id);
i++;
}
}


}

Tiam121
یک شنبه 10 فروردین 1393, 11:09 صبح
if (Convert.ToBoolean(row.Cells[0].Value)== true)
{

r4hgozar
یک شنبه 10 فروردین 1393, 11:35 صبح
نمی شه دوست عزیز.
این ارور رو میده


An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll


Additional information: String was not recognized as a valid Boolean.

r4hgozar
یک شنبه 10 فروردین 1393, 11:39 صبح
این رو هم باید بگم که چک باکس رو دستی ساختم.
یعنی رفتم تو دیتاگرید و edit colum رو زدم و یک item ازنوع چک باکس ساختم

veniz2008
یک شنبه 10 فروردین 1393, 12:47 عصر
این رو هم باید بگم که چک باکس رو دستی ساختم.
یعنی رفتم تو دیتاگرید و edit colum رو زدم و یک item ازنوع چک باکس ساختم
سلام.
شماره اندیس رو اشتباه وارد کردید.
یا شماره اندیس رو اصلاح کنید یا به جای اندیس، نام ستون رو قرار بدید (همون قسمت edit column برید و ببینید مقدار خصوصیت Name چی هست).
موفق باشید.

r4hgozar
یک شنبه 10 فروردین 1393, 13:20 عصر
این کار رو انجام دادم ارور زیر
http://upload7.ir/imgs/2014-03/41810235925452166605.png

کدم هم این شده.


foreach (DataGridViewRow row in dgw2.Rows)
{
if (Convert.ToBoolean(row.Cells["Column1"].Value) == true)
MessageBox.Show(row.Cells[1].Value.ToString());
}

Tiam121
یک شنبه 10 فروردین 1393, 13:31 عصر
دوست عزیز این کد جواب میده و من بارها ازش استفاده کردم
شما به جای اینکه در قسمت cells[] اندیس بدی از اسم اون column استفاده کن توی براکت نیاز به تعریف i هم نیست

Tiam121
یک شنبه 10 فروردین 1393, 13:32 عصر
این سلولی که شما داری انتخاب میکنی از نوع بولین نیست داری اسم یا ایندکس سلول رو اشتباه میدی