Windows Form: Đọc dữ liệu từ File Text và hiển thị lên trên ComboBox (C#)

Windows Form: Đọc dữ liệu từ File Text và hiển thị lên trên ComboBox  

1.       Trường hợp cụ thể

Đọc danh sách sinh viên (cấu trúc như hình bên dưới) từ file text hiển thị lên ComboBox. Sau khi chọn 1 dòng trong ComboBox, nhấn vào nút “get selected item” sẽ hiển thị thông tin sinh viên lên label:

clip_image002[4]

2.       Cách thực hiện:

Sau khi tạo project Windows Form và add file text vào, có thể dùng design tool để làm giao diện như sau:

clip_image003[4]

Để quản lý được những đối tượng sinh viên, tôi sẽ xây dựng 1 lớp Student.

    public class Student
    {
        public string Code { get; set; }
        public string Name { get; set; }

        public override string ToString()
        {
            return "{ Mã: " + Code + " , Tên: " + Name + " }";
        }
    }

 

1 sinh viên gồm mã và tên, có thêm phương thức lấy thông tin toàn bộ đối tượng bằng cách override lại phương thức ToString().

Sau đó, ta lập trình trên form: (xem chú thích trong code để hiểu bước thực hiện)

        //Sự kiện khi form load lên
        private void Form1_Load(object sender, EventArgs e)
        {
            string line = "";

            List<Student> students = new List<Student>();

            //tạo 1 đối tượng luồng đọc để đọc file Student.txt trong đường dẫn tương đối hiện tại của ứng dụng
            System.IO.StreamReader streamReader = new System.IO.StreamReader("Student.txt");

            //mỗi lần đọc 1 dòng trên file text và nếu đọc được sẽ lưu vào chuỗi line
            while ((line = streamReader.ReadLine()) != null)
            {
                Student student = new Student();
                student.Code = line;

                //đọc thêm 1 dòng nữa để lấy tên
                line = streamReader.ReadLine();

                student.Name = line;

                students.Add(student);
            }

            //bỏ danh sách student vào source của combobox để hiển thị
            cboStudents.DataSource = students;
            //khai báo combobox sẽ hiển thị lên cái gì
            cboStudents.DisplayMember = "Name";

        }

        //Sự kiện khi click vào button
        private void btnGetSelectedItem_Click(object sender, EventArgs e)
        {
            //lấy ra student đang được chọn trong combobox
            Student selectedStudent = (Student)cboStudents.SelectedItem;

            //hiển thị thông tin lên label
            lblSelectedItem.Text = selectedStudent.ToString();
        }

 

Cuối cùng, chạy thử lên để kiểm tra.

Lưu ý: nếu biên dịch không lỗi mà chạy chương trình ra lỗi thì có nhiều khả năng là do file text chưa tìm thấy. Nếu như ta muốn định nghĩa file text dữ liệu đầu vào là dạng Content (tức là file rời, độc lập với file exe) thì thường add file text vào project như hình sau để dễ quản lý:

clip_image004[4]

Sau đó để phải đảm bảo sau khi biên dịch, Student.txt sẽ được tạo ra nằm cùng thư mục với file exe (trong folder bin/Debug), ta cần chắc chắn properties của file Student.txt có:

Build Action: Content

Copy to Output Directory: Copy Always

 

 

7 responses to “Windows Form: Đọc dữ liệu từ File Text và hiển thị lên trên ComboBox (C#)

  1. namespace Long
    {
    class Program
    {
    [STAThread]
    static void Main(string[] args)
    {
    OpenFileDialog fdlg = new OpenFileDialog();
    fdlg.Title = “Chọn file”;
    //fdlg.InitialDirectory = @”c:\”;
    fdlg.Filter = “Tất cả (*.*)|*.*|Tất cả (*.*)|*.*”;
    fdlg.FilterIndex = 2;
    fdlg.RestoreDirectory = true;
    fdlg.ShowDialog();
    if (fdlg.CheckFileExists)
    {
    Console.WriteLine(fdlg.FileName);

    Số lượt thích

  2. Bạn giúp mình cái:

    Mình muốn làm một hệ chuyên gia, lấy dữ liệu từ file txt vào combobox,
    mình muốn lấy dữ liệu từ cả 2 combobox để đưa ra kết quả.
    Ví dụ cb1: sốt cao
    cb2: đau đầu
    kết quả sẽ là bị Sốt
    Nếu cb1 là sốt cao
    cb2 là nỗi hột đỏ
    Kết quả sẽ là bị lên ban.

    Bạn giúp mình được không, tks.

    Số lượt thích

  3. bạn có thể hướng dẫn mk làm bài tập này được không
    hãy xây dưng các hàm để chương trình thực hiện các chức năng sau:
    – đọc thông tin từ tệp vừa ghi
    – tìm cán bộ có lương lớn hơn 10 triệu. kết quả lưu vào tệp văn bản “canbo.out”
    – sắp xếp danh sách cán bộ theo chiều giảm dần của tên. kết quả lưu vào cuối tệp văn bản” canbo.out”
    hoàn thiện chạy được chương trình. chia nhỏ bài toán bằng cách viết các hàm, kiểm tra giới hạn dữ liệu đầu vào và vận dụng linh hoạt con trỏ để khai báo cấu trúc canbo gồm: mã cán bộ( char mcb[15]; họ (char ho[15]), tên (chaarr ten[15]), lương ( float lương ).
    tạo sẵn tệp văn bản có tên”canbo.inp” chứa:
    – ghi thông tin n cán bộ vào tệp văn bản có tên “canbo.inp”.
    yêu cầu ghi thông tin cho trong bảng dưới vào tệp với n=3
    mã cán bộ họ tên lương
    cb01 nguyen duy 5000000
    cb02 pham hoang 300000000
    cbo3 do nam 15900000

    thực hiện các chức năng trong chương trình.

    Số lượt thích

  4. báo cấu trúc canbo gồm: mã cán bộ( char mcb[15]; họ (char ho[15]), tên (chaarr ten[15]), lương ( float lương ).
    tạo sẵn tệp văn bản có tên”canbo.inp” chứa:
    – ghi thông tin n cán bộ vào tệp văn bản có tên “canbo.inp”.
    yêu cầu ghi thông tin cho trong bảng dưới vào tệp với n=3
    mã cán bộ họ tên lương
    cb01 nguyen duy 5000000
    cb02 pham hoang 300000000
    cbo3 do nam 15900000

    hãy xây dưng các hàm để chương trình thực hiện các chức năng sau:
    – đọc thông tin từ tệp vừa ghi
    – tìm cán bộ có lương lớn hơn 10 triệu. kết quả lưu vào tệp văn bản “canbo.out”
    – sắp xếp danh sách cán bộ theo chiều giảm dần của tên. kết quả lưu vào cuối tệp văn bản” canbo.out”
    hoàn thiện chạy được chương trình. chia nhỏ bài toán bằng cách viết các hàm, kiểm tra giới hạn dữ liệu đầu vào và vận dụng linh hoạt con trỏ để

    thực hiện các chức năng trong chương trình.

    Số lượt thích

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s