datagridview.Columns[name].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
我用这个属性设置某列按内容显示列宽,如果datagridview内没内容的话,标题为四个字就是显示成两行,怎样让它只显示在一行??谢谢

解决方案 »

  1.   

    想了半天,总算想出点东西了。            SqlConnection sql = new SqlConnection("Data Source=LIUFENG\\SQLEXPRESS;Initial Catalog=jxdms;Integrated Security=True");
                sql.Open();
                SqlDataAdapter da = new SqlDataAdapter("select * from crmcustomer where 1<>1", sql);
                DataSet ds = new DataSet();
                da.Fill(ds, "crmcustomer");
                //da.Fill(ds);
                sql.Close();
                dataGridView.DataSource = ds.Tables[0];            
                this.dataGridView.Columns["ShortName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
                this.dataGridView.Columns["ShortName"].HeaderText = "四个大字";
                if (this.dataGridView.Rows.Count > 0)
                {
                    this.dataGridView.Columns["ShortName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                }
                else
                {
                    this.dataGridView.Columns["ShortName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
                    SizeF fsize = this.CreateGraphics().MeasureString(this.dataGridView.Columns["ShortName"].HeaderText.Trim().ToString(), dataGridView.Font);
                    dataGridView.Columns["ShortName"].Width = 2*Convert.ToInt32(fsize.Width);//找列名的宽度,另外这个2是我自己加的,可自己设
                }
      

  2.   

    谢谢楼上的,我已找到了解决方法。把datagridview的属性设为columnheadersheightsizemode设为EnableResiz就是自动调整列头宽,不会在无数据的时候显示两行。另外可调整列头高度,默认为23