[C#] Hướng dẫn tạo Controls động

Byantonhyip

Th12 5, 2018 #[C#] Hướng dẫn tạo Controls động, #[C#] Hướng dẫn tạo Controls động trên Winform, #add controls dynamically c# asp.net, #add dynamic controls in asp.net c#, #add event to dynamic control c#, #adding dynamic controls in asp.net c#, #c# add dynamic control to panel, #c# asp.net dynamic controls postcback, #c# asp.net viewstate dynamic controls, #c# dynamic winforms, #c# find dynamic control by name, #Cách tạo Controls động trên C#, #Cách tạo và tạo Controls động trên C#, #Cần giúp đỡ tạo Controls động trên C#, #create controls dynamically in c# wpf, #create dynamic control c#, #create dynamic controls in asp.net using c#, #create dynamic user control c#, #creating dynamic controls in c# asp.net, #delete dynamic controls c#, #Demo code tạo Controls động trong C#, #dispose dynamic controls c#, #dynamic add button c#, #dynamic add control c#, #dynamic control c#, #dynamic control creation c#, #dynamic control event handler c#, #dynamic controls c#, #dynamic controls c# asp.net, #dynamic controls c# windows forms, #dynamic data controls in asp.net c#, #dynamic load user control c#, #dynamic user control c#, #dynamic winforms c#, #dynamically add button c#, #dynamically add button c# asp.net, #dynamically add control c#, #dynamically add control to form c#, #dynamically add radio button c#, #dynamically add user control c#, #dynamically create user control c#, #dynamically load user control c# windows form, #dynamically load user control c# wpf, #dynamically load web user control c#, #dynamically resize user control c#, #find dynamic control asp.net c#, #find dynamic control c#, #findcontrol dynamic control c#, #get dynamic control c#, #how to access dynamically created html controls in c#, #how to create a dynamic control in c#, #how to create control dynamically in c#, #how to create controls dynamically in asp.net using c#, #how to create controls dynamically in c#, #how to create dynamic buttons in c#, #how to create dynamic control in asp.net c#, #How to create Dynamic Control in C#, #how to create dynamic control in c# windows application, #how to create dynamic controls in asp.net c#, #how to create dynamic controls in c#, #how to create dynamic file upload control in asp.net c#, #how to create dynamic gridview control in c#/asp.net, #how to create dynamic html controls in c#, #how to create dynamic image control in asp.net using c#, #how to create dynamic menu control in asp.net using c#, #how to create dynamic tab control in c#, #how to create event handler for dynamically added control in c#, #how to create image control dynamically in asp.net c#, #how to create multiple dynamic controls in asp.net using c#, #how to create user control dynamically in c#, #how to dynamically create controls in asp.net with c#, #how to get values from dynamically created controls asp.net c#, #Hướng dẫn tạo Controls động trên C#, #Làm thế nào để tạo ra Dynamic Controls trong C#, #load user control dynamically c# asp net, #remove control dynamically c#, #remove dynamic controls c#, #remove dynamically added controls c#, #Tạo Dynamic control khi chương trình đang thực thi trong C#, #Thiết kế Dynamic Controls trên C# như thế nào, #Thực hành tạo Controls động trong C#, #Tìm hiểu về Dynamic Controls trên C#, #Ví dụ về Dynamic Controls trong C#
Chia sẻ

Nội dung

Giới thiệu

Một chương trình xây dựng trên nền tảng C# nhiều khi cần phải sử dụng tới các Controls động hay còn gọi là Dynamic Control, nghĩa là chúng ta không sử dụng các Cotnrol sẵn có ngay từ đầu, mà sẽ thiết kế chúng bằng Code, khi chương trình chạy Code sẽ thực thi và Controls sẽ được hiển thị. Bài hôm nay csharpcanban.com sẽ hướng dẫn các bạn tạo Controls động trong C#, có ví dụ minh họa và code Demo, các bạn có thể tải về để sử dụng.

Lợi ích của Controls động trong C# là người dùng có thể tạo ra chúng khi họ tương tác với chương trình. Bạn có thể tạo ra bất cứ Control động nào có trong C#. Như hình dưới đây, các bạn sẽ thấy các TextBox được tạo ra tự động sau khi nhấn vào Button1.

C# dynamic-controls creation

Làm thế nào để tạo ra Dynamic Controls trong C# ?

– Đầu tiên các bạn cần khai báo đối tượng Control (sử dụng các namespace cần thiết cho control này).
– Thiết lập các thuộc tính cần thiết cho đối tượng vừa khai báo như: Vị trí (top, left, bottom, right), Text, Font, Color,….
– Thêm Control vào danh sách Controls của form chứa nó.

Xây dựng chương trình

Chương trình dưới đây sẽ giúp bạn hiểu hơn về vấn đề tạo ra Dynamic Controls trong C#, và thay đổi các thuộc tính của Dynamic Control trong khi chạy chương trình. Mục tiêu là tạo ra chương trình chứa 02 nốt bấm, sau mỗi lần bấm vào Button1 sẽ tạo ra một Textbox động có thuộc tính TextBox, và khi bấm vào Button2 sẽ xóa Textbox1.

Xem thêm  [C#] Hướng dẫn sử dụng DateTimePicker

Như vậy là xong phần tạo tao các Textbox động. Tiếp theo ta sẽ thực hiện thao tác xóa các Textbox động này. Để xóa control xác định thì bạn cần biết được một trong các thông tin sau (thứ tự của control đó trong danh sách Controls của Form, Key của control, Name hoặc Text của control…), khi đã biết được các thông tin chính xác của Controls cần xóa, thì các bạn hãy tham khảo các method sau để thực hiện xóa chúng:

this.Controls.RemoveAt(int index);  //Xóa Control theo chỉ số Index
this.Controls.RemoveByKey(string key); //Xóa Control theo Key

Hoặc các bạn có thể sử dụng vòng lặp foreach, duyệt qua tất cả các Control trong list Controls và xét điều kiện, như dưới đây ta thực hiện xóa Textbox có thuộc tính Text là “TextBox 1”.

foreach (TextBox txtBox in this.Controls.OfType< TextBox >())
{
    if(txtBox.Text == "TextBox 1")
    {
         //Thực hiện tác vụ
    }
}

Toàn bộ mã nguồn

Đầu tiên bạn tạo một Project có tên là DynamicControl, tiếp theo kéo 02 Button vào Form đặt tên lần lượt là button_createDC button_delDC, sao chép và dán đoạn mã sau đây vào, tiếp theo gán cho các Button có tên button_createDC button_delDC các sự kiện Click tương ứng.

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 DynamicControl
{
    public partial class Form1 : Form
    {
        int cLeft = 1;

        public Form1()
        {
            InitializeComponent();
        }

        private void button_createDC_Click(object sender, EventArgs e)
        {
            AddNewTextBox(); //Gọi hàm tạo Dynamic Textbox
        }

        public System.Windows.Forms.TextBox AddNewTextBox()
        {
            System.Windows.Forms.TextBox txt = new System.Windows.Forms.TextBox(); //Khởi tạo đối tượng Textbox có tên là txt
            this.Controls.Add(txt);  //Thêm đối tượng txt vào Form
            txt.Top = cLeft * 25; //Thiết lập thuộc tính Top
            txt.Left = 100; //Thiết lập thuộc tính Left
            txt.Text = "TextBox " + this.cLeft.ToString(); //Thiết lập thuộc tính Text cho Textbox
            cLeft = cLeft + 1;
            return txt; //Trả lại đối tượng txt với các thuộc tính kèm theo
        }

        private void button_delDC_Click(object sender, EventArgs e)
        {
            foreach (TextBox txtBox in this.Controls.OfType<TextBox>())
            {
                if (txtBox.Text == "TextBox 1")
                {
                    this.Controls.Remove(txtBox);
                }
            }
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            System.Diagnostics.Process.Start("https://csharpcanban.com");
        }
    }
}

Giao diện chương trình

Sau khi nhấp vào nốt “Tạo Textbox” 9 lần sẽ tạo ra 9 Textbox động.

[C#] Hướng dẫn tạo Controls động

Sau khi nhấp chuột vào nốt “Xóa Textbox” sẽ xóa Textbox1.

Xem thêm  [C#] Hướng dẫn sử dụng Menu Control

[C#] Hướng dẫn tạo Controls động

Lời Kết

Như vậy các bạn đã hiểu hơn về cách tạo và xóa Dynamic Controls trong C#. Hãy thực hành và áp dụng kiến thức trên đây vào chương trình của bạn. Mọi thắc mắc hãy gửi bình luận bên dưới nhé. Csharpcanban.com sẽ giải đáp ngay sau khi đọc được comment của các bạn.

Trong các bài tiếp theo mình sẽ tiếp tục hướng dẫn các bạn sử dụng các Controls trong C# như: sử dụng Combobox, Listbox, Radio Button, và nhiều Control khác, hãy thường xuyên truy cập để đón đọc các bài viết mới trên website csharpcanban.com. Chúc các bạn thành công !!!

Bản quyền

Nội dung trên csharpcanban.com được biên soạn, biên dịch từ nhiều nguồn khác nhau, đồng thời đã được viết thành chương trình. Csharpcanban.Com bảo lưu mọi quyền đối với những bài viết này. Mọi hình thức sao chép đều cần phải được Csharpcanban.Com cấp phép.

Tải CODE

Để tải Code, các bạn hãy nhấp vào Nốt bấm dưới đây. Do mình dử dụng dịch vụ lưu trữ của MediaFire cho nên các bạn hoàn toàn yên tâm là không có virus đâu nhé.

Mật mã giải nén: csharpcanban.com

ĐĂNG KÝ MUA HÀNG

    Email (*)

    Điện thoại (*)

    Tên sản phẩm/Dịch vụ:


    Chia sẻ

    Trả lời

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *