c# – 阻止用户调整ListView中列宽的大小?
发布时间:2020-12-15 04:22:40 所属栏目:百科 来源:网络整理
导读:我有一个ListView在我的Winform中有4列,名称,金钱,ID和级别. 问题是当我运行我的应用程序时,我仍然有能力搞乱列宽 并改变它们. 我搜索并发现我应该这样做: private void listView1_ColumnWidthChanging(object sender,ColumnWidthChangingEventArgs e){ e.C
我有一个ListView在我的Winform中有4列,名称,金钱,ID和级别.
问题是当我运行我的应用程序时,我仍然有能力搞乱列宽 我搜索并发现我应该这样做: private void listView1_ColumnWidthChanging(object sender,ColumnWidthChangingEventArgs e) { e.Cancel = true; e.NewWidth = listView1.Columns[e.ColumnIndex].Width; } 但问题是,当我调试和Ccanged列宽度时,这个事件甚至没有发射! 它为什么不开火? 我怎样才能使列宽固定? 我做了一个新的winform应用程序,以防我的旧版本出现问题, namespace CsharpWinformTestingStuff { public partial class Form1 : Form { public Form1() { InitializeComponent(); listView1.ColumnWidthChanging += new ColumnWidthChangingEventHandler(listView1_ColumnWidthChanging); } void listView1_ColumnWidthChanging(object sender,ColumnWidthChangingEventArgs e) { e.Cancel = true; e.NewWidth = listView1.Columns[e.ColumnIndex].Width; } } } 这里是初始化组件,以防您可能想知道: private void InitializeComponent() { this.listView1 = new System.Windows.Forms.ListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.SuspendLayout(); // // listView1 // this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader1,this.columnHeader2,this.columnHeader3}); this.listView1.GridLines = true; this.listView1.Location = new System.Drawing.Point(12,12); this.listView1.Name = "listView1"; this.listView1.Size = new System.Drawing.Size(284,275); this.listView1.TabIndex = 0; this.listView1.UseCompatibleStateImageBehavior = false; this.listView1.View = System.Windows.Forms.View.Details; // // columnHeader1 // this.columnHeader1.Text = "Name"; this.columnHeader1.Width = 97; // // columnHeader2 // this.columnHeader2.Text = "Age"; this.columnHeader2.Width = 52; // // columnHeader3 // this.columnHeader3.Text = "Email"; this.columnHeader3.Width = 157; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F,13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(308,299); this.Controls.Add(this.listView1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } 解决方法
您可以检查
Better ListView Express.我们已经在列上实现了AllowResize属性,这正是您所需要的.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |