PDA

View Full Version : مشکل در اضافه کردن آیتم از یک فرم به لیست باکس فرم دیگر



nafisehk
یک شنبه 19 شهریور 1391, 14:33 عصر
مشکل این کد چیه؟؟


foreach (DataGridViewRow item in dataGridView1.Rows)
{
if (item.Cells[2].Value != null)
if (item.Cells[2].Value.ToString() == "True")
frmSendnewLetter.lstRecievers.Items.Add(item.Cells[1].Value.ToString());

}

ممنون

nafisehk
یک شنبه 19 شهریور 1391, 14:42 عصر
کاربر تو فرمی که لیست باکس هست رو یه دکمه کلیک می کنه...بعد فرمی که یه دیتاگرید داره باز میشه و کاربر بعد از انتخاب سطر های مورد نظرش (انتخاب چک باکس اون سطر) رو تایید کلیک میکنه... حالااا میخوام سطرایی که انتخاب شدن تو لیست باکس فرم اول ببینم...............>فرم اول بازه

kkkaka
یک شنبه 19 شهریور 1391, 14:49 عصر
سلام
شما فرمی که قراره بهش مقدار بدین رو کجا تعریف کردین؟؟
و اگر فرمی که میخواین بهش مقدار بدین فرم پدر باشه روش کار متفاوته.

nafisehk
یک شنبه 19 شهریور 1391, 14:58 عصر
سلام
شما فرمی که قراره بهش مقدار بدین رو کجا تعریف کردین؟؟
و اگر فرمی که میخواین بهش مقدار بدین فرم پدر باشه روش کار متفاوته.

بالا همین کدی که گذاشتم تعریف کردم... نه فرم پدر نیست

nafisehk
یک شنبه 19 شهریور 1391, 15:14 عصر
دوستان لطفا راهنمایی کنید

kkkaka
یک شنبه 19 شهریور 1391, 15:28 عصر
کد شما هیچ ایرادی نداره فقط تو شماره اندیس هایی که دادین دقت کنید اگر سلول مشخصی مد نظرتون هست بهتره مستقیم اسم سلول رو بجای شماره اندیسش وارد کنید

nafisehk
یک شنبه 19 شهریور 1391, 15:39 عصر
وقتی فرم اخر کدم شو مبکنم جواب میده..... مشکل اینجاست که اون فرم بازه
:(

kkkaka
یک شنبه 19 شهریور 1391, 15:50 عصر
متوجه نمیشم کدوم فرم بازه؟
فرم پدر هم باز باشه فرقی نمیکنه
کد خطا تون ی چیه مطمئنید از این فرمان ایراد میگیره؟؟؟؟

nafisehk
یک شنبه 19 شهریور 1391, 15:58 عصر
[QUOTE=kkkaka;1589861]متوجه نمیشم کدوم فرم بازه؟
فرم پدر هم باز باشه فرقی نمیکنه
کد خطا تون ی چیه مطمئنید از این فرمان ایراد میگیره؟؟؟؟
کدم اررور نداره فقط عمل نمیکنه
فرمی که لیست باکس داره بازه...
اگه ایرادی نداره چرا وقتی دوباره شو میکنم ج میگیرم؟

nafisehk
یک شنبه 19 شهریور 1391, 16:08 عصر
فرمی که لیست باکس داره تو یه پنل از فرم مین بازه.... به این ربطی نداره؟؟ کد زیرم ج نمیده


frmMain.panel2.Controls.Clear();
frmSendnewLetter.TopLevel = false;
frmMain.panel2.Controls.Add(frmSendnewLetter);
frmSendnewLetter.Show();

nilmil_nil
یک شنبه 19 شهریور 1391, 16:18 عصر
سلام
بهتره یه آرایه یا یه datatable تعریف کنید و اونو بفرسید به فرم 2
یعنی از فرم اول Datattable یا آرایه رو پر کنید و اونو پاس بدید به فرم دوم

nafisehk
یک شنبه 19 شهریور 1391, 16:30 عصر
سلام
بهتره یه آرایه یا یه datatable تعریف کنید و اونو بفرسید به فرم 2
یعنی از فرم اول Datattable یا آرایه رو پر کنید و اونو پاس بدید به فرم دوم

سلام
میشه بگید چه جوری پاس بدم؟؟

kkkaka
یک شنبه 19 شهریور 1391, 16:31 عصر
بنده کد شما رو تست کردم بدون مشکل کار میکنه البته شماره اندیس سلول رو تغییر دادم.
ضمنآ توجه داشته باشید که شما دوتا شرط تو حلقه تون دارید اگر ارور نمیده و اجرا میشه شاید دلیلش برقرار نبودن شرط ها باشه.

nafisehk
یک شنبه 19 شهریور 1391, 16:37 عصر
وقتی panel2 پابایکه باید بشه با کد زیر اون clear کرد... چرا نمیشه؟؟


frmMain.panel2.Controls.Clear();

nafisehk
یک شنبه 19 شهریور 1391, 16:41 عصر
بنده کد شما رو تست کردم بدون مشکل کار میکنه البته شماره اندیس سلول رو تغییر دادم.
ضمنآ توجه داشته باشید که شما دوتا شرط تو حلقه تون دارید اگر ارور نمیده و اجرا میشه شاید دلیلش برقرار نبودن شرط ها باشه.

خوب وقتی چک باکس true شه هر دو تا شرط برقراره دیگه؟؟؟
وقتی چک کردید فرم اولتون باز بود؟؟؟

nafisehk
یک شنبه 19 شهریور 1391, 17:08 عصر
دوستان مشکلم حل شد...
تو فرم اولم(فرمی که لیست باکس داره) بعد از فراخوانی فرم دو لیست باکسم و پر می کنم...
در باتن تایید فرم دوم فقط فرم و میبندم...
امیدوارم کد زیر به کسایی که به این مسکل بر میخورن کممک کنه


frmShowKartableUsers frmShowKartableUsers = new frmShowKartableUsers();
frmShowKartableUsers.ShowDialog();
foreach (DataGridViewRow item in frmShowKartableUsers.dataGridView1.Rows)
{
if (item.Cells[2].Value != null)
if (item.Cells[2].Value.ToString() == "True")
{
lstRecievers.Items.Add(item.Cells[1].Value.ToString());;
}
}

nafisehk
یک شنبه 19 شهریور 1391, 17:10 عصر
ممنونم دوست خوبم (kkkaaka) از راهنامیی و وقتی که گذاشتی

kkkaka
یک شنبه 19 شهریور 1391, 17:11 عصر
دقت کنید ستون چک باکستون رو درست انتخاب کنید به نظر بنده بهتره یه فیلد به چک باکس اختصاص بدین که هروقت یک بود (True) میشه و هروقت 0 بود (False).
بله وقتی اجراش کردم هر دوتا فرم باز بود.


DataGridViewCheckBoxColumn myCheck = new DataGridViewCheckBoxColumn();
myCheck.HeaderText = "Name";
myCheck.DataPropertyName = "tf";
myCheck.FalseValue = "0";
myCheck.TrueValue = "1";

در این مثال هر وقت چک باکس true باشه مقدار 1 رو بر میگردونه


foreach (DataGridViewRow row in dgv1.Rows)
{

if (row.Cells["tf"].Value.ToString() == "0")
{Commands}