【问题标题】:How do make a manually arrangeable listview in WinForms?如何在 WinForms 中制作可手动排列的列表视图?
【发布时间】:2012-04-30 01:10:19
【问题描述】:

在我的应用程序的主窗口中,我希望有一个与 Windows 桌面非常相似的界面。会有一堆带有文本的图标,您可以随意拖动它们并随意放置它们。标准的 ListView 几乎可以做到,只是它不支持这种自定义重新排列。除了从头开始编写一个全新的用户控件之外,关于如何实现这种效果的任何想法?

【问题讨论】:

  • 如果说重新排列你的意思是订购,可能你只是可以按照指定的顺序订购列表中的项目吗?
  • @Tigran - 不,我的意思是一半的图标被拖到屏幕的左侧,另一半被拖到右侧。不是真正的订购 - 更像是放置。
  • 不要认为你有什么办法,然后做一些所有者绘制控制。标准控件支持这样的行为。如果我们谈论 WPF,那么那时的故事将完全不同。
  • @Tigran - 我对 WPF 非常陌生。我尝试过几次在其中做某事,却发现自己完全迷失了方向。缺乏好的教程也无济于事(至少我没有找到)。您是说 WPF 具有开箱即用的功能吗?
  • 哦,是的。 :) 这是一个完全不同的故事。如果您要创建一个在 Windows 操作系统上运行的新应用程序(mono 不支持它),那么花时间研究它绝对是值得的(如果您有时间的话)。教程可以看Wpf Tutorial

标签: c# .net winforms listview drag-and-drop


【解决方案1】:

为此,您必须将最大数量的项目添加到列表视图中。据我所知,列表视图将允许我们仅将项目拖到已占用的区域中。您可以使用listview.Items.Add("") 填充多余的空间

一旦你必须添加一些新项目,你可以用新项目替换第一个空白项目。我试过这个东西,它正在工作。你必须处理的一件事是排序。排序时必须省略空白项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2020-10-13
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 2017-09-02
    • 2023-02-06
    相关资源
    最近更新 更多