如题~主要是不想让用户调整列表头的大小即宽度
本人试过ColumnWidthChanging事件,将此事件 e.Cancel = true;但是仍然达不到效果,ListView又没有什么属性可以设置!
ListView控件还有AutoResizeColumns方法,
可以设置AutoResizeColumns(ColumnHeaderAutoResizeStyle.None);
但是还是没没效果!
请高手指教~!~!TKS
C#中ListView控件怎么固定详细详细模式中的列表头?
答案:2 悬赏:70 手机版
解决时间 2021-02-01 05:32
- 提问者网友:太高姿态
- 2021-01-31 12:19
最佳答案
- 五星知识达人网友:封刀令
- 2021-01-31 12:33
这么些就行
int[] widths;
public Form1()
{
InitializeComponent();
widths = new int[listView1.Columns.Count];//这个一定要写在构造方法里
for (int i = 0; i < widths.Length; i++)
{
widths[i] = listView1.Columns[i].Width;
}
}
private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
{
e.Cancel = true;
}
private void listView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
{
if (listView1.Columns[e.ColumnIndex].Width != widths[e.ColumnIndex])
{
listView1.Columns[e.ColumnIndex].Width = widths[e.ColumnIndex];
}
}
int[] widths;
public Form1()
{
InitializeComponent();
widths = new int[listView1.Columns.Count];//这个一定要写在构造方法里
for (int i = 0; i < widths.Length; i++)
{
widths[i] = listView1.Columns[i].Width;
}
}
private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
{
e.Cancel = true;
}
private void listView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
{
if (listView1.Columns[e.ColumnIndex].Width != widths[e.ColumnIndex])
{
listView1.Columns[e.ColumnIndex].Width = widths[e.ColumnIndex];
}
}
全部回答
- 1楼网友:老鼠爱大米
- 2021-01-31 12:48
没有好的办法,一般这样做,在程序启动时用一个arraylist记录各列的宽度,在mousemove事件中,如果现列宽和原来保存的不一样就改回去,仅参考。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯