Cascading ComboBox در برنامه ویندوز با استفاده از سی شارپ

Cascading ComboBox

در این برنامه میخواهیم با هم به سراغ آموزش استفاده از Cascading ComboBox در برنامه ویندوز برویم. تمام مراحل را به همراه عکس و با توضیحات کامل برایتان قرار داده ام. امیدوارم برایتان مفید واقع شود … با من همراه باشید …

Cascading ComboBox

در ابتدا دو combo box انتخاب می کنیم.

آموزش اولیه

قدم اول: ویژوال استادیو ۲۰۱۰ را باز کنید، به File، New، Projects و سپس به Visual C# select Windows بروید.

Cascading ComboBox

هم چنین شما می توانید اسم پروژه را تغییر دهید و آن را به محل دیگری جا به جا کنید. سپس روی OK کلیک کنید.

قدم دوم: در Solution Explorer پروژه خود را می بینید، Service Based Database را اضافه کنید. بعد از اینکه به پروژه خود رفتید کلیک راست کرده و Add New Item – Service Based Database را انتخاب کنید.

Cascading ComboBox

آموزش پایگاه داده (دیتابیس)

قدم سوم: پایگاه داده [Database.mdf] خود را می یابید، دو جدول tbl_country و tbl_state ایجاد می کنیم. به database.mdf بروید، Table and Add New table. جدول خود را مثل زیر طراحی کنید:

Tbl_country:

Cascading ComboBox

Tbl_state:

Cascading ComboBox

آموزش طراحی

قدم چهارم: حالا فایل Form1.cs [Design] خود را باز کنید، جایی که طرح خود را برای Cascading ComboBox ساختید.

ما دو ComboBox از tool box (جعبه ابزار) به Form1.cs [Design] می کشیم، می بیند که فرم شما مثل زیر شده است.

Form1.cs [Design]:

Cascading ComboBox

آموزش کد

روی قسمت خالی 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;  
  
  
        }  
    }  
  
}  

خروجی

Cascading ComboBox

در Combo box اول، کشور هند را انتخاب می کنیم،box state combo فقط مناطق مربوط به هند را نشان می دهد.

Cascading ComboBoxCascading ComboBox

موفق باشید!

  • پسورد: www.mspsoft.com
داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

    محمدرضا نقوي پاسخ

    با سلام
    اگر سه 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 هم در سايت قرار دهيد.

    محمدرضا پاسخ

    با سلام
    مشكل حل شد ولي براي كامل شدن آن نياز به مشورت و راهنمايي دارم تلفن تماس لطف ميكنيد.