C#ListView列宽Auto
我如何设置列的宽度ac#winforms listview
控制自动。 像宽度= -1 / -2?
你给出了答案:-2将列自动化为列标题中文本的长度,-1将自动调整为列中最长的项目。 所有根据MSDN 。 请注意,在-1的情况下,您需要在添加项目后设置列宽。 因此,如果添加一个新项目,则还需要根据ListView
控件中的数据分配要自动调整的列(或多列)的width属性。
用这个:
yourListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); yourListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
从这里
我做了一个程序,清理并重新填充我的listview多次。 由于某种原因,每当我添加宽度为-2的列时,遇到第一列太长的问题。 我做了什么来解决这个问题是创build这种方法。
private void ResizeListViewColumns(ListView lv) { foreach(ColumnHeader column in lv.Columns) { column.Width = -2; } }
关于这个方法的好处是,你几乎可以把它放在任何地方来调整你所有的列。 只需传入你的ListView
。
在Fredrik的答案上稍微扩展一下,如果你想设置列的自动resize的宽度,例如:将第一列的自动调整宽度设置为70:
myListView.Columns[0].AutoResize(ColumnHeaderAutoResizeStyle.None); myListView.Columns[0].Width = 70; myListView.Columns[0].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
该解决scheme将首先根据列数据重新调整列的大小,如果resize的宽度小于标题大小,则将调整列的大小以至less适合标题。 这是一个非常丑陋的解决scheme,但它的工作原理。
lstContacts.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); colFirstName.Width = (colFirstName.Width < 60 ? 60 : colFirstName.Width); colLastName.Width = (colLastName.Width < 61 ? 61 : colLastName.Width); colPhoneNumber.Width = (colPhoneNumber.Width < 81 ? 81 : colPhoneNumber.Width); colEmail.Width = (colEmail.Width < 40 ? 40 : colEmail.Width);
lstContacts是ListView。 colFirstName是一列,其中60是适合标题所需的宽度。 等等。
我相信作者正在寻找一个通过IDE的等效方法,将生成后面的代码,并确保所有的参数,等等。从MSfind这个:
在Windows窗体devise器上创build事件处理程序
来自VB背景我自己,这就是我正在寻找,这里是点击不利的简短版本:
- 单击要为其创build事件处理程序的窗体或控件。
- 在属性窗口中,单击事件button
- 在可用事件列表中,单击要为其创build事件处理程序的事件。
- 在事件名称右侧的框中,input处理程序的名称,然后按ENTER键