Hướng giải quyết bài tập winform


Em hiện đang tìm hiểu cơ bản về Winform và em không giải quyết được 2 bài này.
—> Làm sao để chọn 1 mục bên trái sau đó bấm “>” thì nó hiển thị bên phải vậy ?
Em nên dùng chức năng nào của winform để giải quyết 2 bài này ạ ?
Cảm ơn mọi người đã giúp đỡ.

Chỉ cần nhấn vào nút “Sửa bài” để sửa lại nội dung, không đăng thêm.

Dễ mừ, 2 cái list thui mừ, khi nhấn chuyển qua, bạn clone cái ở bên trái cho sang bên phải, sau đó xóa cái ở bên trái đi (nếu cần) là oki rùi mừ

3 Likes

Sử dụng 2 list … Sau đó dùng sự kiện để biết đang click vào phần tử nào => Xóa và add sang bên là xong.

1 Like

Giả dụ 2 listBox trái - phải có tên lstLeft và lstRight.
2 nút nhấn sang trái-phải là btnMoveLeft, btnMoveRight.
2 nút có event click cùng chỉ tới hàm này:

private void button_Click(object sender, EventArgs e) {
    // lấy thông tin nút nhấn để phân biệt được nút nào đã click
    Button button = (Button)sender;
    // khai báo 2 listbox đại diện cho 2 listbox nguồn và đích tuy nhiên chưa biết là listbox nào
    ListBox src = null;
    ListBox dst = null;
    // dựa vào bút nhấn để tính xem listbox trái-phải cái nào là nguồn-đích và gán vào 2 listbox trên
    src = button == btnMoveLeft ? lstRight : lstLeft;
    dst = button == btnMoveLeft ? lstLeft : lstRight;
    // thực hiện copy các item từ listbox nguồn vào listbox đích.
    foreach (object item in src.SelectedItems){
        dst.Items.Add(item);
    }
    // gỡ các item từ listbox đích theo thứ tự từ cuối lên. Nếu gỡ từ trên xuống sẽ sai index và chạy sai.
    while (src.SelectedItems.Count > 0){
        src.Items.Remove(src.SelectedItems[src.SelectedItems.Count - 1]);
    }
}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?