در این برنامه میخواهیم با هم به سراغ آموزش استفاده از Cascading ComboBox در برنامه ویندوز برویم. تمام مراحل را به همراه عکس و با توضیحات کامل برایتان قرار داده ام. امیدوارم برایتان مفید واقع شود … با من همراه باشید …
Cascading ComboBox
در ابتدا دو combo box انتخاب می کنیم.
آموزش اولیه
قدم اول: ویژوال استادیو ۲۰۱۰ را باز کنید، به File، New، Projects و سپس به Visual C# select Windows بروید.
هم چنین شما می توانید اسم پروژه را تغییر دهید و آن را به محل دیگری جا به جا کنید. سپس روی OK کلیک کنید.
قدم دوم: در Solution Explorer پروژه خود را می بینید، Service Based Database را اضافه کنید. بعد از اینکه به پروژه خود رفتید کلیک راست کرده و Add New Item – Service Based Database را انتخاب کنید.
آموزش پایگاه داده (دیتابیس)
قدم سوم: پایگاه داده [Database.mdf] خود را می یابید، دو جدول tbl_country و tbl_state ایجاد می کنیم. به database.mdf بروید، Table and Add New table. جدول خود را مثل زیر طراحی کنید:
Tbl_country:
Tbl_state:
آموزش طراحی
قدم چهارم: حالا فایل Form1.cs [Design] خود را باز کنید، جایی که طرح خود را برای Cascading ComboBox ساختید.
ما دو ComboBox از tool box (جعبه ابزار) به Form1.cs [Design] می کشیم، می بیند که فرم شما مثل زیر شده است.
Form1.cs [Design]:
آموزش کد
روی قسمت خالی Form1.cs کلیک راست کنید، View Code. می بینید که شما وارد قسمت کد فرم شده اید. کد زیر را بنویسید و برای اچرا پروژه کلید F5 را بزنید.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace cascadingdropdownlist { public partial class Form1 : Form { SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"); DataRow dr; public Form1() { InitializeComponent(); refreshdata(); } public void refreshdata() { con.Open(); SqlCommand cmd = new SqlCommand("select * from tbl_country", con); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt); con.Close(); dr = dt.NewRow(); dr.ItemArray = new object[] { 0, "--Select Country--" }; dt.Rows.InsertAt(dr, 0); comboBox1.ValueMember = "countryid"; comboBox1.DisplayMember = "countryname"; comboBox1.DataSource = dt; } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.SelectedValue.ToString()!= null) { int countryid = Convert.ToInt32(comboBox1.SelectedValue.ToString()); refreshstate(countryid); } } public void refreshstate(int countryid) { con.Open(); SqlCommand cmd = new SqlCommand("select * from tbl_state where countryid= @countryid", con); cmd.Parameters.AddWithValue("countryid", countryid); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt); con.Close(); dr = dt.NewRow(); dr.ItemArray = new object[] { 0, "--Select State--" }; dt.Rows.InsertAt(dr, 0); comboBox2.ValueMember = "stateid"; comboBox2.DisplayMember = "statename"; comboBox2.DataSource = dt; } } }
خروجی
در Combo box اول، کشور هند را انتخاب می کنیم،box state combo فقط مناطق مربوط به هند را نشان می دهد.
موفق باشید!
با سلام
اگر سه ComboBox داشته باشیم مثلا” قاره – کشور – شهر یا مناطق شهرداری برنامه چگونه خواهد بود.
۳
آموزش در سایت قرار داده شده جستجو کنید.
http://www.mspsoft.com/1394/11/02/dropdown-%D8%AA%D9%88-%D8%AF%D8%B1-%D8%AA%D9%88-asp-net/
لایک
با تشکر از جواب شما
من این برنامه را در VB.net مشابه سازی کردم برای سه موضوع قاره کشور و شهر
و پایگاه داده Access ولی دچار مشکل شدم چگونه این برنامه را برای شما بفرستم. اگر لطف بفرمائید این برنامه را با VB.Net هم در سایت قرار دهید.
۴
با سلام
مشکل حل شد ولی برای کامل شدن آن نیاز به مشورت و راهنمایی دارم تلفن تماس لطف میکنید.
۲