انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
سلام دوستان
من يه مشكل دارم اطلاعات رو از ديتاگريد به فرم 2 انتقال ميدم اطلاعاتي كه داخل كمبوباكس،تكس باكس و...پر ميشه.اما كمبوباكسم با اطلاعات گريدم يكي نيست چونكه از بانك پر ميشه.حالا چيكار كنم كه هم اطلاعات از بانك پر بشه هم با اطلاعات ارسالي از ديتاگريد مطابقت داشته باشه؟
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
تا اونجایی که من متوجه شدم، جواب شما:
از دیتا سورس استفاده کن!
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
اطلاعات رو بفرست به BindingSource بعد اونجا چک کن که مطابقت دارن یا نه
ببخشید پست قبل اسمشو اشتباه گفتم! :بامزه:
بعد از BindingSource برا پر کردن اطلاعات استفاده کن
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
نقل قول:
نوشته شده توسط
nunegandom
اطلاعات رو بفرست به BindingSource بعد اونجا چک کن که مطابقت دارن یا نه
ببخشید پست قبل اسمشو اشتباه گفتم! :بامزه:
بعد از BindingSource برا پر کردن اطلاعات استفاده کن
من براي انتقال از كدهاي زير استفاده ميكنم
editfaktor.cbDoctors.Text = dgw["name_dr", dgw.CurrentRow.Index].Value.ToString();
حالا ميشه محبت كنيد بگيد چه تغييري بايد انجام بدم؟؟!؟
cbDoctors در فرم دوم هستش كه بعد از Load شدن از بانك پر ميشه:ناراحت:
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
ابتدا باید اندیس اون آیتم پیدا بشه و بعد اون اندیس از کمبو سلکت بشه. البته اینکه این کار به چه صورتی انجام بشه به خودتون بستگی داره یک راه میتونه به صورت زیر باشه
foreach (DataRow dtrow in dt.Rows)
{
if (dtrow["name"].ToString() == dgw["name_dr", dgw.CurrentRow.Index].Value.ToString())
{
comboBox1.SelectedIndex = dt.Rows.IndexOf(dtrow);
return;
}
}
/* // OR
dt.Rows.OfType<DataRow>().ToList().SingleOrDefault (dtrow =>
{
if (dtrow["name"].ToString() == dgw["name_dr", dgw.CurrentRow.Index].Value.ToString())
{
comboBox1.SelectedIndex = dt.Rows.IndexOf(dtrow);
return true;
}
return false;
});
*/
dt دیتاتیبلی هست که به کمبو بایند شده
به جای "name" نام ستونی از دیتاتیبل که به کمبو بایند شده
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
من از كدها استفاده كردم
نقل قول:
dt.Rows.OfType<DataRow>().ToList().SingleOrDefault (dtrow =>
{
if (dtrow["name"].ToString() == dgw["name_dr", dgw.CurrentRow.Index].Value.ToString())
{
comboBox1.SelectedIndex = dt.Rows.IndexOf(dtrow);
return true;
}
return false;
});
*/[/CODE]
dt دیتاتیبلی هست که به کمبو بایند شده
به جای "name" نام ستونی از دیتاتیبل که به کمبو بایند شده
كه از خط
if (dtRow["family"].ToString() == fa.dgw["name_dr", fa.dgw.CurrentRow.Index].Value.ToString())
خطائي Object reference not set to an instance of an object. ميده.
اونجائي كه من از fa.dgw استفاده كردم به اين دليله كه ديتاگريدم داخل فرم اولم هستش.
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
سلام. برای ست کردن کمبوباکس با مقدار انتخاب شده از گریدویو شما به این یه خط کد نیاز دارید. من گرید رو روی فرم 1 گذاشتم و با کلیک روی هر سطر میخوام مثلا نام کاربری اون داخل کمبوباکس قرار بگیره. وقتی روی گرید کلیک میکنی ، id اون سطر رو بردار و داخل یه متغیر ذخیره کن. من اسمشو گذاشتم MyID( این id در واقع همون valuemember کمبوباکس هست). حالا در فرم 2 که کمبوباکس هست بعد از کدهای مربوط به پر کردن کمبو ، کافیه این یه خط کد رو قرار بدی.
comboBox1.SelectedValue = Form1.MyID;
متغیر MyID رو هم بصورت سراسری در فرم1 بنویس. به اینصورت:
public static string MyID = "";
موفق باشی.
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
نقل قول:
نوشته شده توسط
Yanehsar
من از كدها استفاده كردم
كه از خط
if (dtRow["family"].ToString() == fa.dgw["name_dr", fa.dgw.CurrentRow.Index].Value.ToString())
خطائي Object reference not set to an instance of an object. ميده.
اونجائي كه من از fa.dgw استفاده كردم به اين دليله كه ديتاگريدم داخل فرم اولم هستش.
اون کدی که من گذاشتم را توی فرم اول باید بنویسی. پس به جای fa باید this بزاری. اگر بازم همون خطا رو داد به جای tostring از convert.tostring استفاده کن.
نقل قول: انتقال اطلاعات از ديتاگريد به فرم دوم و كمبوباكس
نقل قول:
نوشته شده توسط
mohammaddou
سلام. برای ست کردن کمبوباکس با مقدار انتخاب شده از گریدویو شما به این یه خط کد نیاز دارید. من گرید رو روی فرم 1 گذاشتم و با کلیک روی هر سطر میخوام مثلا نام کاربری اون داخل کمبوباکس قرار بگیره. وقتی روی گرید کلیک میکنی ، id اون سطر رو بردار و داخل یه متغیر ذخیره کن. من اسمشو گذاشتم MyID( این id در واقع همون valuemember کمبوباکس هست). حالا در فرم 2 که کمبوباکس هست بعد از کدهای مربوط به پر کردن کمبو ، کافیه این یه خط کد رو قرار بدی.
comboBox1.SelectedValue = Form1.MyID;
متغیر MyID رو هم بصورت سراسری در فرم1 بنویس. به اینصورت:
public static string MyID = "";
موفق باشی.
داخل فرم اول كه متغيير static تعريف ميكنم داخل فرم دوم قابل دسترسي نيست.فقط public تعريف ميكنم قابل دسترسي هستش كه اونم خطا داره و اجرا نميشه