2012-07-19 69 views

回答

2

您可以通过改变细胞的填充当行改变高度模拟此。

using System; 
using System.Drawing; 
using System.Linq; 
using System.Windows.Forms; 

class Form1 : Form 
{ 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 

    public Form1() 
    { 
     ClientSize = new Size(640, 480); 
     DataGridView dgv = new DataGridView 
      { 
       Dock = DockStyle.Fill, 
       Font = new Font(FontFamily.GenericSansSerif, 36), 
       AutoGenerateColumns = false, 
       AllowUserToAddRows = false, 
       RowHeadersVisible = false, 
       ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize, 
       Columns = 
       { 
        new DataGridViewTextBoxColumn { HeaderText = "TextBox", DataPropertyName = "Text", AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill, }, 
        new DataGridViewButtonColumn { Name = "ButtonColumn", HeaderText = "Button", AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader, DefaultCellStyle = new DataGridViewCellStyle { Padding = new Padding(2) } }, 
       }, 
       DataSource = Enumerable.Range(1, 5).Select(i => new { Text = "Item " + i.ToString() }).ToList(), 
      }; 

     dgv.RowHeightChanged += (s, e) => 
      { 
       DataGridViewCell cell = e.Row.Cells["ButtonColumn"]; 
       int pad = (e.Row.Height - 25)/2; 
       cell.Style.Padding = new Padding(2, pad, 2, pad); 
      }; 

     Controls.Add(dgv); 
    } 
} 
0

请确保该按钮的button1.AutoSize = true;设置为false

http://msdn.microsoft.com/en-us/library/system.windows.forms.button.autosizemode

+0

哪里?不在编辑器中?列中的按钮 – 2012-07-19 16:44:23

+0

@Elite Gamer它应该在设计器中,或者当您单击属性中的按钮时,它可能也只是AutoSize – 2012-07-19 16:49:48

+0

我得到所有单元格,填充以及所有这些,但不是真或假 – 2012-07-19 16:53:13