PDA

View Full Version : اضافه و حذف كردن يك آيتم به ComboBox توسط كاربر



pars.engineer
پنج شنبه 16 خرداد 1387, 14:44 عصر
سلام،
يك فيلد در جدول بانك اطلاعاتي دارم كه مقداري هايي كه مي تواند داشته باشد چند مورد خاص است، مثل روزهاي هفته كه هفت مورد است با اين تفاوت كه ممكن است بعد از چند ماه لازم باشد يك آيتم به موارد موجود اضافه شود ويا يك آيتم از آن كسر شود.
حالا مي خواهم به جاي استفاده از TextBox از ComboBox استفاده كنم، چون وارد كردن مقادير كمي سخت است.
راهنمايي كه لازم دارم اين است كه مي خواهم يك ComboBox داشتم باشم كه در محيط خود نرم افزار و توسط كاربر بتوان به آن يك آيتم اضافه كرد و يا يك آيتم ار آن كسر كرد.
با سپاس

Yama12
پنج شنبه 16 خرداد 1387, 14:51 عصر
بازم سلام
یکم اگر خودت تلاش کنی به راحتی جواب اینا رو پیدا میکنی


comboBox1.Items.Add(textBox1.Text);

pars.engineer
پنج شنبه 16 خرداد 1387, 15:14 عصر
ممنون،
اما اين كار فقط در موقعي كه برنامه در حال اجراست آيتم ها را به صورت موقتي اضافه مي كند و بعد از اينكه برنامه بسته شود و مجددا اجرا شود آيتم هاي افزوده شده از بين مي روند.
براي حذف كردن يك آيتم چطور ؟
اول بايد يك مقدار رو از textbox بگيره بعد توي comboBox دنبالش بگرده و سپس با دستور clear حذفش كنه.
درسته؟

Sajjad.Aghapour
پنج شنبه 16 خرداد 1387, 15:33 عصر
comboBox1.Items.Remove(textBox1.Text);

pars.engineer
پنج شنبه 16 خرداد 1387, 18:47 عصر
سلام،
جدا من نمي دونم داريد شوخي مي كنيد يا جدي انتظار داريد اين كدها درست كار كنه.
ببينيد دوستان همونطور كه گفتم شما فكر كنيد اين برنامه كامل شده و به صورت Setup روي سيستم كاربر نصب شده، حالا مي خوام اون كاربر بتونه يك آيتم به ComboBox اضافه كند يا حذف كند البته به اين صورت كه آيتم اضافه شده همواره باقي بماند تا مادامي كه باز از جانب كاربر حذف گردد به عبارت ديگر تغييرات هميشگي باشند و نه اينكه هر بار كه از برنامه خارج مي شود تغييرات لغو گردند.
فكر ميكنم بايد از روش Setting باشد.(البته فقط فكر مي كنم چون در اين مورد اطلاعي ندارم)

top7news
پنج شنبه 16 خرداد 1387, 19:06 عصر
سلام
برای اینکه این تغییرات همیشگی باشند خوب یا باید جایی ذخیره بشن یا مثلا یه لیبل بذاری و visible اونو false کنی و مقدار تعییر کرده مورد نظرت رو اون تو بریزی

ولی من بهت پیشنهاد میکنم اطلاعات مربوط به این فیلد مورد نظرت رو توی یه جدول ذخیره کنی و این combo box رو به اون جدولت بایند کنی
و اون رکورد که مورد نظرت هست رو به combo box بایند کنی مه فقط اطلاعات اون فیلد نمایش داده بشه و با هر بار تغییراتی که کاربر میده چون اون تغییرات تو بانک ذخیره میشه در دفعه های بعد هم وجود دارن

pars.engineer
پنج شنبه 16 خرداد 1387, 19:37 عصر
ممنون از راهنماييتون،
خودم هم به اين نتيجه رسيدم كه توي بانك اطلاعاتي يك جدول اضافه بر سازمان بسازم و ComboBox هاي برنامه متصل كنم.
ولي راستش برنامه رو يك نفر برنامه نويس حرفه اي قراره چك كنه، احتمال دارد از اين روش ايراد بگيرد.
من قبلا يك مقداري VB كار مي كردم تو اون يك خاصيت به نام SaveSetting داشتيم كه تنظيمات كار بر را در Registery ويندوز ثبت مي كرد. مثلا اگر قرار بود برنامه بدون مجوز فقط 10 بار اجرا شود يك متغير تعريف مي كرديم و مقدار آن را هر بار يكي اضافه مي كرديم تا به 10 برسد و بعد از 10 بار استفاده برنامه ديگر اجرا نشود.(مطمئنم يك چنين خاصيتي داخل C# هم هست)
با تشكر

Sajjad.Aghapour
پنج شنبه 16 خرداد 1387, 20:15 عصر
ممنون از راهنماييتون،
خودم هم به اين نتيجه رسيدم كه توي بانك اطلاعاتي يك جدول اضافه بر سازمان بسازم و ComboBox هاي برنامه متصل كنم.
ولي راستش برنامه رو يك نفر برنامه نويس حرفه اي قراره چك كنه، احتمال دارد از اين روش ايراد بگيرد.
با تشكر
خوب اگه از دیتابیس ایراد میگیره از همون configuration استفاده کنید.یه مثال ضمیمه کردم......


من قبلا يك مقداري VB كار مي كردم تو اون يك خاصيت به نام SaveSetting داشتيم كه تنظيمات كار بر را در Registery ويندوز ثبت مي كرد. مثلا اگر قرار بود برنامه بدون مجوز فقط 10 بار اجرا شود يك متغير تعريف مي كرديم و مقدار آن را هر بار يكي اضافه مي كرديم تا به 10 برسد و بعد از 10 بار استفاده برنامه ديگر اجرا نشود.(مطمئنم يك چنين خاصيتي داخل C# هم هست)

من تا حالا VB کار نکردم که بگم C# بهتره یا VB.ولی این روزا بیشتر حرف سی شارپه.....
بنابراین فکر نکنم کاری باشه که توی وی بی بتونی انجام بدی ولی تو سی شارپ نشه...
در مورد کار با رجیستری هم سرچ کنید چیزای زیادی گیرتون میاد.....
موفق باشید.......

pars.engineer
شنبه 18 خرداد 1387, 00:03 صبح
سلام،
دوست عزيز sajjadlove ممنون از راهنماييتون، من دقيقا يك همچين چيزي رو مي خواستم.
مي شه لطف كنيد بگيد در بخش setting در قسمت value چه مقداري بايد وارد كنم.
من طبق همون مقاله اي كه شما معرفي كرديد يك فايل setting به برنامه ام اضافه كردم اما هنگام مقدار دهي وقتي دقيقا مقادير نمونه ي شما را كپي كردم، برنامه error داد.
در ضمن شما درون برنامه تان يك فايل با نام setting.cs داريد، ولي من بعد از اضافه كردن يك setting file ، يك فايل setting.setting1.cs به برنامه ام افزوده شد كه فكر مي كنم با فايل شما كمي متفاوت است.

به هر حال اگر در مورد شيوه استفاده كمي توضيح دهيد ممنون مي شوم.

Sajjad.Aghapour
یک شنبه 19 خرداد 1387, 19:09 عصر
سلام....
تعریف کردن یک متغیر در setting فرقی با تعریف کردن متغیر در خود برنامه نداره.ولی بستگی داره که چی تعریف کنید.وقتی در طول برنامه یک string تعریف میکنید و با فشار دادن یک دکمه به اون تکست اضافه می کنید هیچگونه خطایی رخ نمیده..ولی وقتی یک ArrayList تعریف می کنید تا وقتی اون رو new نکردید نمی تونید آبجکتی به اون اضافه کنید...
من هم در این مثال از لیست پیوندی استفاده کردم که وقتی ایجاد می کنید در قسمت value هم می تونید یه آبجکت از اون ایجاد کنید.........
در مورد فایل setting.cs هم بگم که این فایل موقعی ایجاد میشه که در قسمت setting روی View Code کلیک میکنید.........