Lập trình Winform cơ bản

Lập trình Winform cơ bản

Combobox trong lập trình C# Winform Combobox trong lập trình C# Winform Combobox trong lập trình C# Winform Combobox trong lập trình C# Winform Combobox trong lập trình C# Winform 4.5/5 (69 reviews)

Combobox trong lập trình C# Winform

Đã đăng 2016-12-21 15:38:42 bởi HowKteam
2 bình luận 15333 lượt xem
Combobox trong lập trình C# Winform 4.5 /5 stars (2 reviews)
 

Dẫn nhập

Sức mạnh của hệ điều hành Window là không thể chối cãi. Và để tạo nên sức mạnh đó không thể thiếu những ứng dụng mạnh mẽ. Vậy để tạo ra những ứng dụng đó, người lập trình viên cần học cái gì?

Cùng nhau tìm hiểu serial Lập trình Winform.

Nội dung

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ComboboxGUI
{
    public partial class Form1 : Form
    {
        List<Food> listItem;
        List<CBClass> ListClass;
        public Form1()
        {
            InitializeComponent();

            listItem = new List<Food>() 
            { 
                new Food(){Name = "Mực một nắng nướng sa tế", Price = 200000}, 
                new Food(){Name = "Dú dê nướng sữa", Price = 75000},
                new Food(){Name = "Ếch núp lùm", Price = 50000}
            };
            comboBox1.DataSource = listItem;
            comboBox1.DisplayMember = "Name";

            AddBinding();


            ListClass = new List<CBClass>();
            ListClass.Add(new CBClass()
            {
                ClassName = "12CK1",
                ListStudent = new List<string>() { "K9", "Kosak"}
            });
            ListClass.Add(new CBClass()
            {
                ClassName = "12CK5",
                ListStudent = new List<string>() { "DG" }
            });

            cbBranch.DataSource = ListClass;
            cbBranch.DisplayMember = "ClassName";

            //AddClassBinding();
        }        
        void AddClassBinding()
        {
            cbClass.DataBindings.Add("DataSource", cbBranch.SelectedItem, "ListStudent", true, DataSourceUpdateMode.OnPropertyChanged);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
        }

        void AddBinding()
        {
            textBox1.DataBindings.Add(new Binding("Text", comboBox1.DataSource, "Price"));
        }

        private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            //ComboBox cb = sender as ComboBox;

            //if (cb.SelectedValue != null)
            //{
            //    Food food = cb.SelectedValue as Food;
            //    textBox1.Text = food.Price.ToString();
            //}
        }

        private void cbBranch_SelectedValueChanged(object sender, EventArgs e)
        {
            ComboBox cb = sender as ComboBox;

            if (cb.SelectedValue != null)
            {
                CBClass cl = cb.SelectedValue as CBClass;
                cbClass.DataSource = cl.ListStudent;
            }
        }
    }

    public class Food
    {
        public string Name { get; set; }
        public float Price { get; set; }
    }

    public class CBClass
    {
        public string ClassName { get; set; }
        public List<string> ListStudent { get; set; }
    }
}

Form1.Designer.cs

namespace ComboboxGUI
{
    partial class Form1
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.comboBox1 = new System.Windows.Forms.ComboBox();
            this.button1 = new System.Windows.Forms.Button();
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.cbBranch = new System.Windows.Forms.ComboBox();
            this.cbClass = new System.Windows.Forms.ComboBox();
            this.SuspendLayout();
            // 
            // comboBox1
            // 
            this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
            this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
            this.comboBox1.FormattingEnabled = true;
            this.comboBox1.IntegralHeight = false;
            this.comboBox1.Location = new System.Drawing.Point(12, 41);
            this.comboBox1.Name = "comboBox1";
            this.comboBox1.Size = new System.Drawing.Size(121, 21);
            this.comboBox1.TabIndex = 0;
            this.comboBox1.SelectedValueChanged += new System.EventHandler(this.comboBox1_SelectedValueChanged);
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(12, 12);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(93, 23);
            this.button1.TabIndex = 1;
            this.button1.Text = "load list items";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            // 
            // textBox1
            // 
            this.textBox1.Location = new System.Drawing.Point(152, 42);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(100, 20);
            this.textBox1.TabIndex = 3;
            // 
            // cbBranch
            // 
            this.cbBranch.FormattingEnabled = true;
            this.cbBranch.Location = new System.Drawing.Point(12, 126);
            this.cbBranch.Name = "cbBranch";
            this.cbBranch.Size = new System.Drawing.Size(121, 21);
            this.cbBranch.TabIndex = 4;
            this.cbBranch.SelectedValueChanged += new System.EventHandler(this.cbBranch_SelectedValueChanged);
            // 
            // cbClass
            // 
            this.cbClass.FormattingEnabled = true;
            this.cbClass.Location = new System.Drawing.Point(151, 126);
            this.cbClass.Name = "cbClass";
            this.cbClass.Size = new System.Drawing.Size(121, 21);
            this.cbClass.TabIndex = 5;
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(284, 261);
            this.Controls.Add(this.cbClass);
            this.Controls.Add(this.cbBranch);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.comboBox1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.ComboBox comboBox1;
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.TextBox textBox1;
        private System.Windows.Forms.ComboBox cbBranch;
        private System.Windows.Forms.ComboBox cbClass;
    }
}

Download project

Kết luận

Bài sau chúng ta sẽ cùng tìm hiểu về Picturebox trong lập trình C# Winform.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

Chia sẻ:
Thảo luận Hỏi và đáp Báo lỗi bài viết
Hủy bỏ   hoặc  
Combobox trong lập trình C# Winform
diepvn 2018-12-04 13:37:13

Neu trong ham AddClassBinding(), binding DataSource thi van duoc.

cbClass.DataBindings.Add("DataSource", cbBranch.DataSource, "ListStudent");

0 bình chọn
Reply
Combobox trong lập trình C# Winform
huynhtich 2017-01-08 17:19:07
Xin chào HowKteam, Em dùng Entity Framework lấy dữ liệu từ 2 table: hopdong(mahd, makh) và danhmuckhachhang(makh, tenkh) để load vào combobox cbMahd private MKEntities de = new deEntities(); void LoadHopdongToComBo() { cbMahd.DataSource = de.hopdong.Select(p=> new {Mahd = p.mahd, Tenkh = p.danhmuckhachhang.tenkh}).ToList() ; cbMahd.DisplayMember = "Mahd"; } Mình muốn khi thay đổi combobox thì Tên khách hàng sẽ hiển thị trên textbox tbTenKhachHang: private void cbMahd_SelectedValueChanged(object sender, EventArgs e) {ComboBox cb = sender as ComboBox; if (cb.SelectedValue != null) { Hopdong hd = cb.SelectedValue as Hopdong; tbTenKhachHang.Text = hd.Tenkh; } } public class Hopdong { public string Mahd { get; set; } public string Tenkh { get; set; } } Báo lỗi: Object reference not set an instance of an object. Nhờ HowKteam giúp ạ.
0 bình chọn
Reply
Hủy bỏ   hoặc  
Hủy bỏ   hoặc  

Chiến dịch

Kteam - Howkteam Free Education