title: Preventing users from resizing columns widths in ListView?
body: <p>I have a ListView In My Winform that has 4columns, Name, Money, ID and Level.</p>
  
  <p>The problem is when I run my app, I still have the ability to mess with the columns widths
  and change them.</p>
  
  <p>I searched And found that I should do something like this:</p>
  
  <pre><code>private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
  {
    e.Cancel = true;
    e.NewWidth = listView1.Columns[e.ColumnIndex].Width;
  }
  </code></pre>
  
  <p>But the problem is that when I debugged and Ccanged the columns widths, this event didn't even fire!</p>
  
  <p>Why didn't it fire?</p>
  
  <p>And how can I make the column widths fixed?</p>
  
  <p>I made a new winform app just in case if there was something wrong in my old one, 
  it fired, but only for the first time running the app .. here's the code:</p>
  
  <pre><code>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;
      }
    }
  }
  </code></pre>
  
  <p>here is the initialize component just in case you might wanna know:</p>
  
  <pre><code>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);
  
  }
  </code></pre>