小编kha*_*les的帖子

捕获 ListView 中取消全选的情况 -- SelectedIndexChanged 触发两次

基本上,我有一个项目列表视图。选择其中一个后,右侧会出现一个文本框,显示该项目的更多详细信息(抓取项目数据需要一点时间)。我想要的行为是在取消选择所有项目时隐藏右侧的此文本框。

        private void listView1_SelectedIndexChanged(object sender, EventArgs e) {

            // should only be 1 item selected, it's not a multi-select listview
            ListView.SelectedListViewItemCollection collection = this.listView1.SelectedItems;

            if (collection.Count == 0) {
                this.label2.Visible = false;
            }    
            foreach (ListViewItem item in collection) {
                this.label2.Visible = true;
                getSideInformation(item.Text);
            }
        }
Run Code Online (Sandbox Code Playgroud)

当我只是选择另一个项目时,我注意到盒子闪烁。我通过将代码更改为进行了一些挖掘:

        private void listView1_SelectedIndexChanged(object sender, EventArgs e) {

            // should only be 1 item selected, it's not a multi-select listview
            ListView.SelectedListViewItemCollection collection = this.listView1.SelectedItems;

            if (collection.Count == 0) {
                this.label2.Text = "Unselected all!"    
            }
            foreach …
Run Code Online (Sandbox Code Playgroud)

c# listview

4
推荐指数
1
解决办法
8044
查看次数

Do-While循环的可接受使用?

可能重复:
编码标准/编码C++中的最佳实践

我没有使用Do-While循环很多,但我发现自己在一个特定类别的情况下使用它做了一些逻辑,在那里我想要查看与多个退出点有关的事项列表但只能通过它一次.我总是对条件有"while(TRUE)"和"if(TRUE)break".在循环的最后,因为我只想通过它一次.[我猜或者我可以将这些2合并为"while(FALSE)."]

Do {

  // do some stuff

  if (!CheckCondition1) break;
  // do some stuff

  if (!CheckCondition2) break;
  // do some stuff

  ...

  // or delete this and change to while (FALSE);
  if (TRUE) break;
} while (TRUE);
Run Code Online (Sandbox Code Playgroud)

我一直在这些情况下使用Do-While结构,但我不确定它是否是一种"可接受"的方式来使用它或者是否有更好的方法.谢谢.

c c# c++ java do-while

1
推荐指数
2
解决办法
4580
查看次数

标签 统计

c# ×2

c ×1

c++ ×1

do-while ×1

java ×1

listview ×1