ListView 通过用户拖动调整大小 (VB.net)

问题描述 投票:0回答:3

我正在将公司的 VB6 程序转换为 VB.net,但我遇到了另一个愚蠢的小障碍。

旧程序有一个 ListView 停靠在应用程序屏幕的左侧。用户可以将光标放在 ListView 的右侧部分,光标会变成 SizeWE 箭头,然后他们可以拖动它,这将调整 ListView 的大小。

我正在尝试重新创建这个。据我所知,没有任何属性称为“可调整大小”,或者至少没有任何内容向我弹出。我不相信它是在代码中完成的。

我缺少什么财产吗?如果没有,是否有一种简单的方法可以在代码中执行此操作? (即,有没有一个事件可以让我的生活变得更轻松)

我使用的是 Visual Studio 2008。

如有小白之处请见谅; .NET 对我来说还很陌生,而且我是整个公司唯一的程序员。我才毕业一年.. 预先感谢!

编辑:我知道它在上一个程序中是如何完成的(一旦你提出问题,你似乎总是能找到它,不是吗?)。旧程序有一个不可见的图片,只有几个像素宽,当鼠标悬停在上面时,光标会更改为 SizeWE。然后,您可以拖动该不可见的图片,这将触发一个事件,然后该事件将更改 ListView 的大小。这看起来相当复杂。我的问题仍然存在:是否有更好的方法来处理这种拖动和调整大小?

vb.net listview resize
3个回答
1
投票

您应该考虑使用

Splitter
控件,或使用
SplitContainer
控件。

如果您使用 Splitter,最简单的成功方法是:

  • ListView
    控件添加到窗体中,将
    Dock
    属性设置为
    Left
  • Splitter
    控件添加到窗体中,将
    Dock
    属性设置为
    Left
  • 向窗体添加
    Panel
    控件,将
    Dock
    属性设置为
    Fill

这将为您提供一个视图,用户可以在其中调整

ListView
的大小,并且
Panel
(您可以在其中放置所需的任何其他控件)将使用任何可用空间。如果控件的行为不符合您的要求(例如,如果拆分器没有达到您预期的位置),请按照
Format -> Order -> Send to back
ListView
Splitter
的顺序在控件上使用
Panel
命令。


0
投票

使用 SplitContainer 可以让你轻松地做到这一点。 替代文本http://img30.imageshack.us/img30/6568/captureoq.jpg


0
投票

使用控件“TableLayoutPanel”并将属性集合“column”从 procent 更改为“autosize”

https://learn.microsoft.com/pl-pl/dotnet/api/system.windows.forms.tablelayoutpanel.columnstyles?view=windowsdesktop-8.0

© www.soinside.com 2019 - 2024. All rights reserved.