(تذکر:در جلسه اول با محیط ویندوز فرم آشنا شدیم و همچنین کار کردن با دستورات را در آموزش برنامه نویسی تحت کنسول آموزش دادیم لطفا اگر مبتدی هستید با این دو آموزش شروع کنید)در این جلسه سعی داریم کنترل combobox و listbox در سی شارپ را همراه با مثال آموزش دهیم ابتدا به کنترل listbox می پردازیم:
کنترل ListBox در سی شارپ
اگر داخل برنامه نیاز بود که یک لیست انتخاب داشته باشیم از ابزای بنام ListBox استفاده می کنیم.
مشخصه ی مهمی بنام Items دارد که می توان در پنجره ای که باز می شود آیتم های مورد نظرمان را به لیستمون اضافه کنیم
اما می خواهیم برنامه ای بنویسیم که بتوانیم در زمان اجرا آیتم هایی را به لیستمان اضافه کند یا حذف کند و حتی بتوانیم بین آیتم ها جستجو کنیم؟
کنترل های مورد نیاز :
ListBox
TextBox
Button
private void btnInsert_Click(object sender, EventArgs e)
{
listBox1.Items.Add(textBox1.Text);
textBox1.Text = “”;
textBox1.Focus();
}
مفهوم خط 2 و3 :
هر موقعی که TextBox خالی شد نشانگر موس را بده به TextBox که دوباره بتونیم بنویسیم.
- اگر بخواهیم زمانی که کلید اینتر را انتخاب کردیم متن داخل TextBox به ListBox اضافه شود از قطعه کد زیر استفاده می کنیم:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((int)e.KeyChar == 13)
{
listBox1.Items.Add(textBox1.Text);
textBox1.Text = “”;
textBox1.Focus();
}
}
- زمانی که آیتمی را بخواهیم حذف کنیم:
private void btnDelete_Click(object sender, EventArgs e)
{
listBox1.Items.Remove(listBox1.SelectedItem);
}
- زمانی که بخواهیم یک آیتمی را داخل لیستمان پیدا کنیم:
private void btnSearch_Click(object sender, EventArgs e)
{
string Search_Str = textBox1.Text;
int Index = listBox1.FindString(Search_Str,-1);
//چرا 1- قرار دادم یعنی جایی که هیچ عنصری وجود ندارد
//اگر مخالف 1- بود یعنی یک چیزی را پیدا کرده است————–
if (Index != -1) {
listBox1.SetSelected(Index, true);
}
}
کنترل ComboBox در سی شارپ
کنترل ComboBox دقیقا خصوصیاتی شبیه به کنترل ListBox دارد فقط جای کمتری نسبت به کنترل ListBox اشغال می کند چون با استفاده از فلش کنارش لیست آن باز می شود:
دقیقا مثل کنترل ListBox مشخصه ی مهمی بنام Items دارد که می توان در پنجره ای که باز می شود آیتم های مورد نظرمان را به لیستمون اضافه کنیم:
برنامه را اجرا می کنیم:
چیزی را مشاهده نمی کنیم تا زمانی که روی فلش کناریش کلیک نکنیم لیست آن را نمایش نمی دهد:
یکی دیگر از خصوصیات کنترل ComboBox خصوصیت DropDownStyle است که اگر روی Simple قرار بدیم شبیه کنترل ListBox در می آید. ولی ما خاصیت DropDown را انتخاب می کنیم تا حالت یک منوی کشویی باشد
- اگر بخواهیم در زمان اجرا آیتم هایی را به لیستمان اضافه یا حذف کنیم،کنترل های مورد نیاز :
ComboBox
TextBox
Button
private void btnInsert_Click(object sender, EventArgs e)
{
comboBox1.Items.Add(textBox1.Text);
textBox1.Text = “”;
textBox1.Focus();
}
- زمانی که آیتمی را بخواهیم حذف کنیم:
private void btnDelete_Click(object sender, EventArgs e)
{
comboBox1.Items.Remove(comboBox1.SelectedItem);
}
آموزش combobox و listbox در سی شارپ به پایان رسید امیدواریم استفاده کامل برده باشید. در آموزش بعد نیز کار با سه کنترل ScrollBar و TrackBar و Timer در سی شارپ را به شما آموزش خواهیم داد. با ما همراه باشید.
سلام خدمت اساتید بزرگوار. من برای بهره گیری و استفاده از راهنمایی های اساتید چکار باید بکنم. چون اول باری که سوال داشتم راهنماییم کردید اما نتوانستم جواب سوالات بعدیم را بگیرم.
سلام و عرض ادب.
دوست عزیز اگر در مورد پست ها و مطالبی که توسط کارشناسان آموزش داده شده و بر روی سایت قرار گرفته سوالی وجود دارد می توانید در پایین همان پست در قسمت دیدگاه سوال خود را مطرح و پاسخ را دریافت نمایید. ولی اگر سوالات در حوزه ای فراتر از پست مربوطه باشد می بایست به صورت سفارش پروژه مراحل ذنبال شود که در این صورت درخواست شما برای تولید کد نمونه ارسال شده و پس از بررسی کارشناسان هزینه مشخص و در صورت تایید شما، پروژه انجام و برای شما ارسال می شود.
با تشکر از همراهی شما
با سلا. سلام خدمت استاد بزرگوار آقای مهدی نیکخواه. استاد بزرگوارم دو سوال داشتم خواهشمندم در صورت امکان راهنماییم کنید.
سوال اول ) چگونه میتوانم وقتی با یک کمبو باگس فیلد نام در sql را فراخوانی کردم ( که در این مورد مشکلی ندارم) یک تکست باگس داشته باشم که id مربوط به آیتم فراخوانده شده در کمبو باگس را نشان دهد. یعنی تکست باگس هماهنگ با کمبو باگس کار کند.
سوال دوم ) در یک تگست باگس وقتی id یک رکورد در sql را می نویسم و دکمه فراخوانی را کلیک می کنم در تکست باگسهای مربوطه بعدی نام و نام خانوادگی وسایر آیتمها فرا خوانی می شوند ولی می خواهم تکست باگسی داشته باشم که قتی نام یا نام خانوادگی را می نویسم با کلیک دکمه فراخوانی سایر آیتمهای رکورد مورد نظر فراخوانی شوند. ممنون می شوم اگر راهنماییم بفرمایید.
سلام و عرض ادب.
در مورد سوال اول می توانید بدون کدنویسی در قسمت تنظیمات مربوط به تکست باکس، آن را مستقیما به جدول و فلید مورد نظر لینک کنید. در مورد سوال دوم این کار اصلا درست نیست چون ممکنه شما چند نام مشابه در جدول داشته باشید و دکمه فرخوانی اطلاعات کدام ردیف را برای شما فرخوانی کند و می بایستی برای فرخوانی اطلاعات ستونی را در نظر بگیرید که منحصر بفرد باشد.
با تشکر از همراهی شما
با سلام خدمت استاد بزرگوار آقای مهدی نیکخواه. اطلاعات یک جدول در sql را با دستور Select به برنامه فراخوانی کرده و در یک دیتا گرید نمایش داده ام. حال چگونه می شود با یک کمبو باگس که حاوی نام استانها است و آن را از یک جدول دیگر در sql گرفته وقتی نام یک استان را با کمبو باگس انتخاب می کنم رکوردهای دیتا گرید محدود شود به آنهایی که به استان مورد نظر مربوطند. در قدم بعدیم می خواهم کمبو باگس ها را به دوتا و سه تا اضافه کنم در یک کمبو باگس نام شهرها و در یک کمبو باگس دیگر نام مناطق یعنی رکوردهای دیتا گرید را محدود تر کرد. با کد نویسی به زبان سی شارپ می خواهم به نتیجه برسم. استاد بزرگوار لطفا هر کدام از سوالاتم نیازمند آن بود که در روال اداری شرکت قرار گیرد ( یعنی مستلزم برآورد هزینه شد) راهنمایی ودستور لازم را امر فرمایید. اگر عنوان کردن این مطلب آخر دور از ادب بود شما به بزرگواری خودتان این حقیر را ببخشید.
سلام و عرض ادب.
کارشناس مربوطه در حال آماده کردن کدهای لازم و توضیحات مربوطه برای شما می باشد و مستندات برای شما به صورت ایمیل ارسال خواهد شد.
با تشکر از همراهی شما
دمتون گرم . خیلی به موقع به دردم خورد.
با عرض سلام و خسته نباشید چند سوال راجع به لیست باکس در سی شارپ دارم ممنون میشم راهنمایی فرمایید.
۱- چطور میشود در کنار هر یک از عناصر لیست باکس یک چک باکس قرار داد .
۲- چطور میشود ذو تا چک باکس در بالای لیست باکس قرار داد که با انتخاب یکی همه عناصر انتخاب و با دیگری همه انتخاب ها حذف شود .
سلام و عرض ادب
نمونه کدی در پاسخ به سوالات برای شما ایمیل گردید . امیدواریم مفید واقع شود در صورت وجود هر گونه سوالی در همین قسمت مطرح نمایید.
با تشکر از همراهی شما
سلام، من نیاز به یک dropdownlist با ۳ ستون نیاز دارم. چکار باید بکنم
سلام آقای نیک خواه
من چطوری میتونم combobox رو در if قرار بدم
مثلا بگم از در کمبوباکس این گذینه رو کاربر زد بیا و این کار را انجام بده
سلام و عرض ادب. از راه های مختلفی می توانید این کد را بنویسید که چند نمونه رو به عنوان مثال بیان می کنیم:
if (this.combo1.SelectedItem == شی مورد نظر)
{
لیست دستورات
}
یا اینکه مثلا:
if(combo1.Text == “متن مورد نظرتان”)
{
لیست دستورات
}
البته دستوراتی که در اینجا تایپ شده ممکن است در سایت برعکس نشان داده شود که مواظب این مساله باشید. البته هدف اشاره و راهنمایی شما دوست عزیز هست.
با تشکر از همراهی شما
سلام و خسته نباشید خدمت شما استاد بزرگوار
من یه پروژه رقص نور دارم که یک کمبو باکس داره و کاربر باید از اونجا رنگ رو انتخاب کنه. من باید چجوری کمبو باکس رو در ایف قرار بدم که اگر به طور مثال کاربر آبی را وارد کرد
رنگ لیبل هامو آبی کنم؟
چطوری می تونم بدون دیتا بیس؛دیتای وارد شده در کومبو باکس را ذخیره کنم
سلام و عرض ادب. می توانید در یک فایل مثل فایل Text هم ذخیره کنید و اطلاعات را از آن فایل خوانده و ذخیره کنید که لازمه آن دانستن اطلاعات در مورد نحوه خواندن و نوشتن در فایلها می باشد که می توانید با سرچ در گوگل به مطالب خوبی برسید.
با تشکر از همراهی شما
سلام. میخواستم بدونم اگه بخواهم چیزی به اول یا اخر لیست باکس اضافه کنم باید چکار کنم .؟
سلام خدا قوت . بعد از نوشتن .listbox1اصلا itemsرو در کادر لیست باکس نیست و خودمم که مینویسمش ارور میگیره . هیچ جای برنامم اشتباه نییس.
واقعا دستتون درد نکنه برای بعضی از ما ها که منابع انگلیسی رو نمیتونیم درک کنیم این منبع بهترین منبع هست خیلی ممنون از آموزش هاتون
سلام من میخوام آیتم ها زیر هم نوشته بشه ولی نمیشه چی کارکنم؟؟؟
سلام و عرض ادب
در قسمت properties ، گزینه ای وجود دارد بنام items که می توانید روی آن کلیک کنید پنجره ای باز می شود که می توانیددر آن جا آیتم ها یتان را به دلخواه خودتان وارد کنید .
با تشکر از همراهی شما
با سلام
میخواستم بدونم دستورات و کدهای کامبوباکس رو میشه داخل notepad نوشت و بصورت html ذخیره کرد؟
میخوام توی صفحه وب خودم یه کامبوباکس بنویسم باید چیکار کنم؟ ممنون میشم کمکم کنید.
سلام و عرض ادب. برای هر زبانی یک محیط برنامه نویسی قرار دارد که آن کدها در همان زبان قادر به اجرا خواهند بود. پس برای اینکار شما باید به زبان های تحت وب مثل asp.net یا php و … مسلط شوید.
با تشکر از همراهی شما
سلام و عرض ادب
من یک لیست باکس دارم و میخوام با انتخاب یک آیتم از لیست باکس مثل کد شهر اطلاعات مربوط به ان شهر از sql خوانده و اطلاعات در فرم دیگه و تسکت باکس ها نمایش داده شود ممنونم
سلام با تشکر از آموزش مفیدتان
یه سوال داشتم البته به این مطلب مربوط نمیشه
چطور می تونم با فشردن یک دکمه در فرم سوم رنگ فرم های دوم و اول رو تغییر بدم؟
ممنون میشم اگه پاسخ بدین
سلام یه سوال داشتم
من مثلا اومدم یه برنامه نوشتم که اسم و کار کاربران رو دریافت بکنه و توی لیست باکس نشون بده.حالا میخوام قسمت کارِ کاربرِ مثلا رضا ناصری رو حذف بکنم.ولی کاری که رضا ناصری داره،لوله کشیه و توی لیست باکس من چند تا لوله کش دیگه هم هستن،و من اگه بخوام تو تکس باکس بنویسم لوله کش و بعد دکمه حذف رو بزنم،کار اونا هم حذف میشه.
من خودم یه ایده برای حل این موضوع دارم.که هر کاربر که مشخصاتشو وارد میکنه،یه شماره هم به صورت خودکار بیاد کنار مشخصاتش بصورت تگ.و بعد با نوشتن تگ کاربر و مثلا کار کاربر،کار کاربر مورد نظر رو حذف بکنم.ولی کدشو بلد نیستم.ایده ای دارین؟
سلام و عرض ادب. کلا مسیر طراحی نرم افزار شما اشتباه هست و شما باید یک دوره را به صورت کامل مطالعه کنید تا در زمان طراحی رابط گرافیکی برای یوزر به این مشکلات نخورید.
با تشکر از همراهی شما
سلام و عرض تشکر سوالی دارم اگر لطف بفرمایید ممنون . در یک حلقه میخواهیم تازمانی که شرط داخل editbox محقق نشده دوباره کرسر داخل editbox رفته و منتظر تایپ مقدار جدید بماند. البته روی editbox فکوس کرده ولی اتفاقی نمیافته و حلقه تکرار میشه ممنون میشم راهنمایی بفرمایید.
سلام خسته نباشید
بنده یک سوال دارم
به عنوان مثال اگه یکی ار عناصر لیست باکس مقدارش (علی) بوده و الان بخوایم مقداد یک متغیر رو بهش اضافه کنیم چجوریه؟
مثلا قبلا مقدارش (علی) بوده و حالا میخوایم بشه (علی ۱۳)
باسلام به تمام اساتید .من تازه سی شارپ یاد گرفتم خواستم در مورد دو تا کمبوباکس که به هم وابسته هستند سوال کنم فرض اینکه یک کمبو باکس اسامی استانهارو داره و دیگری شهرای زیر مجموعه چطور میتونم اگر ابادان انتخاب میخوام کنم خوزستان انتخاب کردم فقط شهرای خوزستان بیان چکار کنم یه فرمول زدم در موردش کمکم کنید اشتباه همو بگین
DataTable dt;
SqlDataAdapter x;
dt = new DataTable();
x = new SqlDataAdapter
(“select * from JointList where GenerateJoint= ” + JointA.Text, cn);
x.Fill(dt);
Dina.DataSource = dt;
Dina.DisplayMember = “JointNo”;
Dina.ValueMember = “Id”;
سلام خشته نباشید چه جوری میتونیم لیست باکس یا کومبو باکس رو توی ارایه بریزیم؟
سلام من برای اتصال کومبو باکس به لیبل در یک فرم دیگه چیکار باید انجام بدهم ؟