Sự kiện SelectedIndexChanged ListBox trong C# Winforms

Trong bài viết này chúng ta sẽ tìm hiểu về sự kiện SelectedIndexChanged ListBox trong C# Winforms. Đây là một sự kiện thông dụng của ListBox, thường được sử dụng trong các ứng dụng có chứa ListBox.

Mình sẽ hướng dẫn cách tạo và xử lý sự kiện SelectedIndexChanged, cùng với đó là một ví dụ để các bạn có thể tham khảo.

Sự kiện SelectedIndexChanged là gì?

Sự kiện SelectedIndexChanged của ListBox là sự kiện xảy ra khi chỉ mục của Item trong ListBox được chọn đã được thay đổi.

Ví dụ khi chúng ta chọn vào một Item bất kỳ trên ListBox, Item đó sẽ được chuyển qua một ListBox khác. Khi đó sự kiện SelectedIndexChanged đã xảy ra.

Bài viết này được đăng tại [kiso.vn]

Để hiểu rõ hơn, các bạn cùng mình sẽ cách tạo và xử lý sự kiện ở phần dưới đây.

Cách tạo sự kiện SelectedIndexChanged ListBox trong C# Winforms

Để tạo được sự kiện SelectedIndexChanged đầu tiên chúng ta cần thêm ListBox vào Form, sau đó đặt tên cho nó. Bây giờ chúng ta sẽ thêm các Items vào cho ListBox.

Nhấn chuột phải vào ListBox sau đó chọn Properties, kéo xuống bên dưới và chọn vào thuộc tính Collection như hình dưới đây.

selected index changed 01 png

Khi đó một cửa sổ mới hiện ra, ở đây các bạn nhập nội dung cho các Items.

selected index changed 06 png

Sau khi đã có được các Items, bây giờ chúng ta bắt đầu đi tạo sự kiện SelectedIndexChanged bằng một trong hai cách sau.

Cách 1: Chuột phải vào ListBox chọn Properties, sau đó chọn vào biểu tượng sấm sét, kéo xuống bên dưới và đặt tên cho sự kiện SelectedIndexChanged.

selected index changed 02 png

Cách 2: Ngoài cách ở trên các bạn có thể nhấp đúp chuột trái vào ListBox, khi đó hệ thống sẽ tự tạo sự kiện SelectedIndexChanged cho chúng ta.

Xử lý sự kiện SelectedIndexChanged ListBox trong C# Winforms

Bây giờ chúng ta sẽ bắt đầu xử lý sự kiện SelectedIndexChanged vừa được tạo ở trên.

Giả sử mình có bài toán như sau: Ta có hai ListBox chứa các môn học khác nhau. Khi người dùng chọn vào một môn học ở ListBox 1, sẽ thông báo tồn tại nếu môn học đó đã có trong ListBox 2 và ngược lại.

Đầu tiên chúng ta sẽ khai báo một biến curItem để chứa nội dung của Item được chọn bởi người dùng thông qua thuộc tính SelectedItem.

string curItem = listBox1.SelectedItem.ToString();

Tiếp đến khai báo biến index để lấy kết quả trả về từ việc tìm kiếm nội dung của curItem với các Items trong ListBox 2.

int index = listBox2.FindString(curItem);

Nếu giá trị trả về là -1, có nghĩa là chưa có môn học đó ở trong ListBox 2, khi đó ta thông báo cho người dùng là môn học chưa có.

Ngược lại, thông báo cho người dùng là môn học đã có. Việc thông báo này sẽ hiển thị ở trên một Label có tên là lblThongBao.

if (index == -1)
     lblThongBao.Text = "Chưa có môn học " + listBox1.SelectedItem;
else
     lblThongBao.Text = "Đã có môn học " + listBox1.SelectedItem;

Kết quả:

selected index changed 04 pngselected index changed 05 png

Code hoàn chỉnh

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 EventsListBox
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string curItem = listBox1.SelectedItem.ToString();

            int index = listBox2.FindString(curItem);

            if (index == -1)
                lblThongBao.Text = "Chưa có môn học " + listBox1.SelectedItem;
            else
                lblThongBao.Text = "Đã có môn học " + listBox1.SelectedItem;
        }
    }
}

Như vậy là chúng ta đã tìm hiểu xong về sự kiện SelectedIndexChanged ListBox trong C# Winforms. Trên đây là một ví dụ cơ bản về cách sử dụng sự kiện mà mình đã đưa ra. Các bạn có thể áp dụng vào các bài toán phức tạp hơn nhé, chúc các bạn thành công !!!

Bài viết liên quan

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 *