Ok vì vậy tôi đang cố gắng để di chuyển các mục từ một ListBox để khác bằng cách sử dụng nhiều nút tức làVô hiệu hóa nút vấn đề trên C#
tôi có 2 nút cmdRight và cmdRight2 đó đều vô hiệu hóa trên tải dạng
Nếu người dùng chọn một mục duy nhất trên hộp danh sách đầu tiên một nút cmdRIght cho phép nhưng cmdRight2 vẫn bị tắt, nếu người dùng chọn nhiều mục trên hộp danh sách đầu tiên, nút cmdRight2 cho phép nhưng cmdRight bị tắt.
Tôi có các nút di chuyển để hoạt động nhưng sự cố tôi gặp phải sau khi di chuyển nhiều mục bằng nút cmdRight2 nút cmdRight cho phép (chỉ nên bật sau khi chọn một mục trong hộp danh sách). Tôi đã thử rất nhiều câu lệnh if… nhưng nó vẫn xảy ra.
Tôi mới tham gia C# nên mọi trợ giúp sẽ được đánh giá cao.
cảm ơn
private void lbList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.lbList1.SelectedItems != null)
{
cmdRight.Enabled = true; //enable cmdRight
cmdClear.Enabled = true; //enable cmdClear
if (this.lbList1.SelectedItems.Count > 1)//if multiple items selected
{
cmdRight.Enabled = false;
cmdRight2.Enabled = true; //enable cmdRight2
}
}
}
private void cmdRight2_Click(object sender, EventArgs e)
{
foreach (int i in lbList1.SelectedIndices)
{
lbList2.Items.Add(lbList1.Items[i].ToString());
}
while (lbList1.SelectedItems.Count > 0)
{
lbList1.Items.Remove(lbList1.SelectedItems[0]);
}
cmdRight2.Enabled = false;
}
private void cmdRight_Click(object sender, EventArgs e)
{
lbList2.Items.Add(lbList1.SelectedItem); //Add selected item from list1 to list2
lbList1.Items.Remove(lbList1.SelectedItem);//remove the selected item in list1
cmdRight.Enabled = false; //disable cmdRight
}
Có bạn đặt breakpoint tại bắt đầu của từng chức năng để xem thứ tự mà chúng đang được gọi? Hoặc ít nhất, một điểm ngắt mỗi lần cmdRight.Enabled được đặt thành true. – taylonr
Đây không phải là câu trả lời cho câu hỏi của bạn, nhưng tại sao không chỉ kết hợp hai nút (bằng cách loại bỏ cmdRight và giữ cmdRight2)? Rõ ràng là tôi không biết thiết kế của bạn, nhưng nó có lẽ sẽ giải quyết vấn đề của bạn. –
Tôi đã thử các điểm ngắt và vì lý do nào đó câu lệnh if "if (this.lbList1.SelectedItems! = Null)" có vẻ luôn đúng. Ngay cả khi không có gì được chọn –