C# ListView 列宽自动
如何将ac# winforms listview
控件的列宽设置为auto。 像宽度 = -1 / -2 之类的东西?
How can I set the column width of a c# winforms listview
control to auto. Something like width = -1 / -2 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
您给出了答案:-2 会将列自动调整为列标题中文本的长度,-1 将自动调整为列中最长的项目。 全部根据 MSDN。 请注意,在 -1 的情况下,您需要在添加项目后设置列宽。 因此,如果添加新项目,您还需要分配要根据
ListView
控件中的数据自动调整大小的列的宽度属性。You gave the answer: -2 will autosize the column to the length of the text in the column header, -1 will autosize to the longest item in the column. All according to MSDN. Note though that in the case of -1, you will need to set the column width after adding the item(s). So if you add a new item, you will also need to assign the width property of the column (or columns) that you want to autosize according to data in
ListView
control.使用此:
来自此处
Use this:
from here
我制作了一个程序,多次清除并重新填充我的列表视图。 由于某种原因,每当我添加宽度= -2 的列时,我都会遇到第一列太长的问题。 我为解决这个问题所做的就是创建这个方法。
此方法的优点在于您几乎可以将其放在任何地方来调整所有列的大小。 只需传入您的
ListView
即可。I made a program that cleared and refilled my listview multiple times. For some reason whenever I added columns with width = -2 I encountered a problem with the first column being way too long. What I did to fix this was create this method.
The great thing about this method is that you can pretty much put this anywhere to resize all your columns. Just pass in your
ListView
.你可以使用这样的东西,在参数中传递你想要的ListView
You can use something like this, passing the ListView you want in param
还有另一种有用的方法,称为 AutoResizeColumn,它允许您使用所需的参数自动调整特定列的大小。
你可以这样称呼它:
There is another useful method called
AutoResizeColumn
which allows you to auto size a specific column with the required parameter.You can call it like this:
如果您在任何父面板中有ListView(ListView停靠填充),您可以使用简单的方法...
If you have ListView in any Parent panel (ListView dock fill), you can use simply method...
如果您想动态设置列的自动调整宽度,请对 Fredrik 的答案进行一些扩展
例如:将第一列的自动调整宽度设置为 70:
Expanding a bit on Fredrik's answer, if you want to set the column's auto-resize width on the fly
for example: setting the first column's auto-size width to 70:
还值得注意的是,如果不首先更改属性,ListView 可能不会按预期显示:
对我来说,Visual Studio 似乎由于某种原因将其默认为 View.LargeIcon,因此在更改属性之前不会显示任何内容。
完整的代码以在 ListView 中显示单个列并为垂直滚动条留出空间。
It is also worth noting that ListView may not display as expected without first changing the property:
For me Visual Studio seems to default it to View.LargeIcon for some reason so nothing appears until it is changed.
Complete code to show a single column in a ListView and allow space for a vertical scroll bar.
该解决方案将首先根据列数据调整列的大小,如果调整后的宽度小于标题大小,它将调整列的大小以至少适合标题。 这是一个相当丑陋的解决方案,但它确实有效。
lstContacts 是列表视图。
colFirstName 是一列,其中 60 是适合标题所需的宽度。
ETC。
This solution will first resize the columns based on column data, if the resized width is smaller than header size, it will resize columns to at least fit the header. This is a pretty ugly solution, but it works.
lstContacts is the ListView.
colFirstName is a column, where 60 is the width required to fit the title.
Etc.
我相信作者正在通过 IDE 寻找一种等效的方法,该方法将生成后面的代码并确保所有参数都就位等。从 MS 找到了这个:
在 Windows 窗体设计器上创建事件处理程序
来自我自己有一个VB背景,这就是我一直在寻找的,这里是点击不利的简短版本:
I believe the author was looking for an equivalent method via the IDE that would generate the code behind and make sure all parameters were in place, etc. Found this from MS:
Creating Event Handlers on the Windows Forms Designer
Coming from a VB background myself, this is what I was looking for, here is the brief version for the click adverse:
我找不到合适的代码,所以我决定自己编写。
在这里你可以使用它。
I couldn't find a proper code so I decided to write it myself.
Here you can use it.