PDA

View Full Version : سوال: سوال ساده در مورد ComboBox در vb.net



مهران چمنی
یک شنبه 05 خرداد 1392, 14:29 عصر
سلام
از چه روشی استفاده کنم که ComboBox فقط آیتم ها رو نمایش بده و
در حالتی که فرم باز هست نتونیم تکسی درونش بنویسیم؟

دومین مشکل اینکه وقتی روش کلیک میکنیم رنگ زمینه متن آیتم به رنگ آبی در میاد...به اون شکل هم نشه

سومین مشگل اینکه وقتی روش کلیک میکنیم کورسور چشمک زن هم نیاد...

خلاصه اینکه ComboBox یه حوری قفل باشه که فقط باهش بتونیم آیتم های از قبل داده شده بهش رو انتخاب کنیم

ممنون میشم کمک کنید

p30online
یک شنبه 05 خرداد 1392, 14:54 عصر
سلام
واضح تر بگو چه کار می خوای بکنی؟ می خوای اطلاعاتی نمایش بده؟اطلاعات داخل بانک اطلاعاتی یا به صورت دستی نمایش بده؟

مهران چمنی
یک شنبه 05 خرداد 1392, 15:37 عصر
سلام
واضح تر بگو چه کار می خوای بکنی؟ می خوای اطلاعاتی نمایش بده؟اطلاعات داخل بانک اطلاعاتی یا به صورت دستی نمایش بده؟

از قبل داخلش 3تا گذینه قرار دادم

ولی وقتی فرم باز میشه .... میشه توی اون تکس نوشت....
همجنین وقتی روش کلیک میکنی تکس داخل اون به رنگ آبی در میاد و کورسور هم جشمک میزنه

میخوام این حالت ها نباشه
فرم که باز میشه فقط از کمبوباکس بشه برای انتخاب یکی از حالت های از قبل تعیین شده استفاده بشه

:اشتباه: خوب باید چکار کنم؟

محمد آشتیانی
یک شنبه 05 خرداد 1392, 15:49 عصر
سلام

پراپرتی DropdownStyle رو بذار روی DropDownList حل میشه

مهران چمنی
یک شنبه 05 خرداد 1392, 16:26 عصر
سلام

پراپرتی DropdownStyle رو بذار روی DropDownList حل میشه
ممنون بابت پاسخ
بله حل میشه ولی حالت پیش نمایش تکس عیر فعال میشه
یعنی قبل از اینکه گذینه ای انتخاب کنیم هیچ تکسی نشون نمیده

چطوری این مشگل رو برطرف کنم ؟

shahryari
یک شنبه 05 خرداد 1392, 17:20 عصر
سلام
در رویداد فرم لود میتونی ایندکس کمبو را برابر صفر قرار بدید

مهران چمنی
یک شنبه 05 خرداد 1392, 17:46 عصر
با تشکر از دوست عزیز شهریاری و hosein320 (http://barnamenevis.org/member.php?275894-hosein320) بایت راهنماییشون
با این دستور حواب گرفتم


ComboBox1.Text = ComboBox1.Items(0)

p30online
یک شنبه 05 خرداد 1392, 17:50 عصر
سلام داداش تا حالا سر کلاس بودم ببخشید دیر شد

داداش اگه بخوای اطلاعات داخل بانک اطلاعاتی نمایش داده بشود باید یک تابع به این صورت بنویسی .



private void combo()
{
string n;
n = dataGname.RowCount.ToString();
if (n == "2")
{
comboBox1.Items.Clear();
comboBox1.Items.Add(dataGname.CurrentRow.Cells[0].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[1].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[2].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[3].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[4].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[5].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[6].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[7].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[8].Value.ToString());
comboBox1.Items.Add(dataGname.CurrentRow.Cells[9].Value.ToString());
}

}

و این قسمت هم را در صورتی که چندین بار می خوای لود بشوی این تابع را هم می نویسی که پس از هر بار load شدن اطلاعات قبلی combobox پاک شود .




private void combobox()
{
string n;
n = dataGname.RowCount.ToString();
if (n == "2")
{
comboBox1.Items.Clear();

}

}

و در قسمت load فرم نام دو تابع را صدا می زنی .

p30online
یک شنبه 05 خرداد 1392, 18:13 عصر
داداش قسمت تغییر combobox هم این کد را در قسمت comboBox1_TextUpdate بنویس که در صورت update شدن خطا بدهد.



private void comboBox1_TextUpdate(object sender, EventArgs e)
{
MessageBox.Show("شما نمی توانید اطلاعات جدید وارد کنید");

comboBox1.Text = "";
comboBox1.Items.Clear();
comboBox1.Items.Add("ali");
comboBox1.Items.Add("ahmad");
comboBox1.Items.Add("reza");
comboBox1.Items.Add("javad");
comboBox1.Items.Add("ana");
}


ودر صورت وارد کردن داده هم اگه می خواهی خطا بدهد این را هم بنویس





private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
MessageBox.Show("شما نمی توانید اطلاعات جدید وارد کنید");
}

مهران چمنی
یک شنبه 05 خرداد 1392, 18:32 عصر
ممنونم جناب p30online (http://barnamenevis.org/member.php?287265-p30online) عزیز
مشگلم برطرف شد...
متاسفانه زبان C کار نمیکنم و سردر نمیارم
ولی توی VB.NET تقریبا دستورات C و BASIC شبیه هم هستند..
بابت راهنماییتونم ممنونم