PDA

View Full Version : پر کردن combobox درون دیتاگریدویو مخصوص هر سطر



mojtaheri
شنبه 10 اردیبهشت 1390, 10:22 صبح
سلام.من یک دیتا گرید ویو دارم که توش یک ستون از نوع combobox دارم حالا میخوام برای هر سطری اطلاعات خاصی قرار بگیره .بعنوان مثال فرض کنید دو تا ردیف داریم :کالای 1 وکالای2 .حالا کالای 1 دارای دو رنگ آبی و قرمز و کالای 2 دو رنگ بنقش وسبز داره.میخوام وقتی روی هر سطر قرار گرفت توی combobox اون سطر فقط رنگ های مخصوص اون کالا قرار بگیره.لطفا راهنمایی کنید که کارم گیر کرده.:گریه:

نیما حتمی
شنبه 10 اردیبهشت 1390, 11:19 صبح
با سلام
دوست عزیز شما براسا س اینکه کلای 1 برای کدام سطر هست و کالای 2 برای کدام سطر می تونید به راحتی این کار رو انجام بدین.

mojtaheri
شنبه 10 اردیبهشت 1390, 11:31 صبح
فرض کنیم که معلوم باشه چطوری امکانپذیره؟

نیما حتمی
شنبه 10 اردیبهشت 1390, 11:42 صبح
شما در keydowne فرمت بگو اگه سطری که کاربر روش هست کالای 1 هست کا مبوشو با اون رنگهای خاص fill کن واسه دومی هم همین طور


if (dataGridView1.CurrentCell.ColumnIndex == 1)
{دستورات
}
curentcell سلولی هسن که حاوی نام کالاته من 1 گذاشتم شما عدد مورد نظرتو بذار

mojtaheri
شنبه 10 اردیبهشت 1390, 11:50 صبح
مشکل اینجاست که وقتی ردیف 1 با رنگهای خودش پر میشه ردیف 2 هم همون مقادیر رو میگیره وقتی روی ردیف 2 میرم ردیف 1 هم مقادیر ردیف 2 رو میگیره

نیما حتمی
شنبه 10 اردیبهشت 1390, 11:56 صبح
از قیافه برنامت یه عکس بگیر بزار اینجا ببینم ترتیبش به چه صورته بهت بگم چیکار کنی

mojtaheri
شنبه 10 اردیبهشت 1390, 12:17 عصر
اینم عکسش برای combobox ردیف 1 دو رنگ color1 ,color2 تنظیم شده وبرای دومی دو رنگ دیگه ولی وقتی روی سطر جابجا میشیم سطر دیگه هم مقادیر اون یکی دیگه رو میگیره.69353

M aJi D
شنبه 10 اردیبهشت 1390, 12:32 عصر
مشکل اینجاست که وقتی ردیف 1 با رنگهای خودش پر میشه ردیف 2 هم همون مقادیر رو میگیره وقتی روی ردیف 2 میرم ردیف 1 هم مقادیر ردیف 2 رو میگیره

سلام.
دوست عزیز من فکر میکنم شما برای همه ی سطرها از 1 دیتاست استفاده کردین یعنی با عوض کردن سطرتون هربار برنامه میره از بانکتون رنگهارو پیدا میکنه و میریزه توی دیتاست(یا همون sqlcommand) حالا چرا 2تا کامبوباکس 1رنگ میشن؟ چون 2تاشون به 1 دیتاست وصل هستن .
من فکر میکنم شما بهتره اول که صفحه لود میشه (یا هر زمانی که دیتاگرید پر میشه)کانکشنتونو برقرار کنید بعد همه ی رنگهارو بگیرید توی sqlcommand بعد با 1دستور if مثل همونی که دوستمون گفتن اطلاعات را بریزید توی کامبو باکس خودش اینجوری دیگه اولاً فقط 1بار به بانک ارتباط دادین دوماً هی با تغییر سطر اطلاعات عوض نمیشه.
این نظر من بود.
مثلاً پارمترهای اول و دوم دیتاست برن تو کامبوباکس 1
پارامترهای سوم و چهارم دیتاست برن تو کامبوباکس 2
.
.
.
موفق باشید

mojtaheri
شنبه 10 اردیبهشت 1390, 12:41 عصر
ممنونم از جوابهای شما دوستان عزیز.
در واقع هر موقع که کمبوباکسی که پر میشه پر میشه برای همه سطرها پر میشه نه تنها برای یک ردیف واگه با دستور نیما جان بریم باز هم نمیشه.

M aJi D
شنبه 10 اردیبهشت 1390, 12:59 عصر
ممنونم از جوابهای شما دوستان عزیز.
در واقع هر موقع که کمبوباکسی که پر میشه پر میشه برای همه سطرها پر میشه نه تنها برای یک ردیف واگه با دستور نیما جان بریم باز هم نمیشه.

ببینید دوست عزیز منظور من اینجوری بود


SqlCommand EditColor = newSqlCommand();
EditColor.Connection = EditColorCnn;
EditColor.CommandText = "GetColor";
EditColor.CommandType = CommandType.StoredProcedure;
EditColor.Parameters.AddWithValue("@Id",
IdTxt.Text);
EditColorCnn.Open();


SqlParameter Color1 = newSqlParameter();
Color1.ParameterName = "Color1";
Color1.DbType = DbType.String;
Color1.Direction = ParameterDirection.Output;
Color1.Size = 50;
EditColor.Parameters.Add(Color1);
EditColor.ExecuteNonQuery();
EditColorCnn.Close();



بعد هم این color1 را بریز توی کامبوباکس 1 بعد color2 را بریز توی کامبوباکس 2 و....

ostovarit
شنبه 10 اردیبهشت 1390, 13:25 عصر
شما رو نمیدونم ولی من همه کد ها رو همراه با <font size="2"><font color="#2b91af"> و کلی تگ اضافه میبینم ... برای درج کد از امکان درج کد C# استفاده میکنید؟؟؟

mojtaheri
شنبه 10 اردیبهشت 1390, 14:12 عصر
منم به صورت تگ میبینم

M aJi D
شنبه 10 اردیبهشت 1390, 15:24 عصر
شما رو نمیدونم ولی من همه کد ها رو همراه با <font size="2"><font color="#2b91af"> و کلی تگ اضافه میبینم ... برای درج کد از امکان درج کد C# استفاده میکنید؟؟؟

سلام.
من اون قسمت مخصوص کد را زدم بعد ویرایش زدم و 1قسمت اضافه کردم اینجوری شد اما اون قسمتهایی که فرمودین جزء کدها نیست دستورات C#مشخصه .
بازم شرمنده

اینم درستش


SqlCommand EditColor = newSqlCommand();
EditColor.Connection = EditColorCnn;
EditColor.CommandText = "GetColor";
EditColor.CommandType = CommandType.StoredProcedure;
EditColor.Parameters.AddWithValue("@Id",
IdTxt.Text);
EditColorCnn.Open();


SqlParameter Color1 = newSqlParameter();
Color1.ParameterName = "Color1";
Color1.DbType = DbType.String;
Color1.Direction = ParameterDirection.Output;
Color1.Size = 50;
EditColor.Parameters.Add(Color1);
EditColor.ExecuteNonQuery();
EditColorCnn.Close();