Tag: listview

在C#Windows窗体中的同一ListView控件中重新排序/移动/拖放ListViewItems

我在C#2008系统Windows窗体的LargeIcon视图中有一个ListView 。 现在我想在同一个ListView中移动这个ListView的一个项目在另一个位置 – 让我们称它为“拖放”或“项目重新排序”或其他什么。 VB 6能够做到这一点,并在任何listView中自动执行此操作。 C#似乎没有此function,或者需要先编码。 为了编码,我没有经验,我在互联网上的研究中找不到任何答案。 我发现只有一个“覆盖程序”没有用。 我不需要任何其他ListView控件(如ObjectListView或其他),我不需要覆盖程序或制作新的ListView控件。 我想在Microsoft提供的ListView控件中处理它。 对此有任何想法。 代码将受到高度赞赏我相信我不能自己做,除非它是一个非常简单的单行。 PS:如果需要移动项目,我需要移动项目的所有属性(text,tag,imagekey,background-color,foreground-color,name,tooltiptext等)。 我不知道如何实现这一目标。 我发现了一个提示:它存在删除一个项目(称为.Remove ())并插入一个名为.Insert ()的插入。 但是有了这些信息,我仍然无法通过鼠标“移动”物品。 我认为listView的所有DragEvents都在这里发挥作用,但我不知道如何使用它们以及如何将所选项目( listView1.SelectedItems )复制到正确的位置并且需要首先获得此位置。

加载所有项目并在ListView中显示后会触发哪个事件?

在WPF ListView中加载并显示所有项目后会触发哪个事件? 我尝试优化在ListView中显示大量项目。 ListView使用以下代码填充Items: List selectedArtistsList; //Code to fill selectedArtistsList with about 6,000 items not shown here CollectionViewSource selection1ViewSource = ((CollectionViewSource)(this.FindResource(“selection1Source”))); Stopwatch stopWatch1 = new Stopwatch(); stopWatch1.Start(); selection1ViewSource.Source = selectedArtistsList; stopWatch1.Stop(); Debug.Print(“Time used: {0}ms”, stopWatch1.ElapsedMilliseconds.ToString()); 当我运行此代码时,我看到“时间使用119毫秒”或类似的东西。 但是在我看到屏幕上ListView中的Items之前,它需要大约3秒钟。 是否有一个事件在ListView加载项目后触发? 我有兴趣测量ListView为用户准备好的时间。

ListView具有列和绑定性能

我有ListView性能问题: 单个项目需要13-30毫秒才能创建(50个项目超过1秒)。 虚拟化(重新打印模式)已启用,但滚动甚至100个项目已经非常不舒服。 起初我认为这是布局问题 。 但原因似乎是 – 绑定。 有多个列,每个列单元格具有不同的模板和不同的绑定,例如: 任何单个绑定添加类似0.1毫秒的东西。 有20列,每个单元有1到20个绑定,因此它导致: 绑定需要大部分时间,例如屏幕截图中第一列的2.83 3.07 ms。 有没有办法获得一些表现? 我做了一些明显的错误吗?

列单击时WPF ListView排序

我有一个列表视图,项目在运行时以单个/多列的网格forms添加。 现在我需要让排序工作。 列表视图中包含项目并单击列后,应对该列进行排序。 以下是listview的代码 填充列表视图的C#代码: case “Person”: dt = GetDataTable(GET_Person) this.lstValue.View = gridview; gridview.Columns.Add(new GridViewColumn { Header = “Number”, DisplayMemberBinding = new Binding(“Number”) }); gridview.Columns.Add(new GridViewColumn { Header = “Name”, DisplayMemberBinding = new Binding(“Name”) }); foreach(DataRow dr in dt.Rows) { this.lstValue.Items.Add(new ReportItem { Number = dr[“Number”].ToString(), Name = dr[“Name”].ToString() }); } break; 他们应该能够对姓名或号码进行排序。

从C#中的ListView中删除项目

我需要从列表视图中删除项目,我要查找的代码将显示一个消息框以确认,如果没有选择项目,它将显示一个错误消息框 这是我的代码,它不起作用:( private void button2_Click(object sender, EventArgs e) { if (listView1.SelectedItems != null) { var confirmation = MessageBox.Show( “Voulez vous vraiment supprimer les stagiaires séléctionnés?”, “Suppression”, MessageBoxButtons.YesNo, MessageBoxIcon.Question ); if (confirmation == DialogResult.Yes) { for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].Selected) { listView1.Items[i].Remove(); i–; } } } } else { […]

.NET Listview刷新

我有以下代码,它基本上从数据库中获取值并填充listview。 using (IDataReader reader = cmd.ExecuteReader()) { lvwMyList.Items.Clear(); while (reader.Read()) { ListViewItem lvi = lvwMyList.Items.Add(reader[“Value1”].ToString()); lvi.SubItems.Add(reader[“Value2”].ToString()); } } 我遇到的问题是,它会以较短的间隔(每秒)重复执行,导致列表视图中的项目不断消失并重新出现。 有没有办法阻止列表视图刷新,直到完成更新? 如下所示: using (IDataReader reader = cmd.ExecuteReader()) { lvwMyList.Items.Freeze(); // Stop the listview updating lvwMyList.Items.Clear(); while (reader.Read()) { ListViewItem lvi = lvwMyList.Items.Add(reader[“Value1”].ToString()); lvi.SubItems.Add(reader[“Value2”].ToString()); } lvwMyList.Items.UnFreeze(); // Refresh the listview }

ListView(WPF)中的分隔符?

我要在WPF的ListView中插入一个Separator,如下所示: 图片 我使用了以下XAML代码,但它不起作用! 你能指导我吗? 谢谢。

C#ListView鼠标滚轮没有焦点

我正在制作一个WinForms应用程序,其中ListView设置为详细信息,以便可以显示多个列。 当鼠标hover在控件上并且用户使用鼠标滚轮时,我希望此列表滚动。 现在,滚动仅在ListView具有焦点时发生。 如果没有焦点,我怎样才能使ListView滚动?

ListView子项目中的图像

如何为listview子项添加图像而不是文本? 喜欢http://sofzh.miximages.com/c%23/2mzz6s6.png ? 这里通常是我如何添加一个字符串: ListViewItem item = new ListViewItem(“A”); item.SubItems.Add(“B”); item.SubItems.Add(“C”); listView1.Items.AddRange(new ListViewItem[] { item }); 我正在使用带有WinForms的.NET 2.0。 另外,请不要将我链接到具有高级.NET listview控件的文章。 我想坚持使用MSVC中的标准版。

如何在ListView中创建可点击的链接?

我试图在ListView项目中使URL可点击。 我该怎么做呢? 我希望它工作的方式是用户以纯文本存储链接,然后当我检索链接时,我想让它们在ListView中可点击。 这是我在read.GetString(2)拉取URL值时从我的数据库中检索条目的方法: if (security.DecryptAES (read.GetString(1), storedAuth.Password, storedAuth.UserName) == “Web Site Password”) { // Count Web passwords. countWeb++; Web = new ListViewItem(“”); Web.SubItems.Add(security.DecryptAES (read.GetString(2), storedAuth.Password, storedAuth.UserName)); Web.SubItems.Add(security.DecryptAES (read.GetString(5), storedAuth.Password, storedAuth.UserName)); Web.SubItems.Add(security.DecryptAES (read.GetString(6), storedAuth.Password, storedAuth.UserName)); Web.Tag = read.GetInt32(0); lvWeb.Items.Add(Web); }