2016-03-01 35 views
0

我在學習上DataGridView伸行,以填補整個高度的DataGridView C#的winform

一點我有一個DataGridView,我填了一些列從DataSource

行後,我想輸出一個位圖,因爲它,我想,我的行和列填滿整個可用空間

的柱子,我只是用(正常工作)

foreach (DataGridViewColumn col in DG_dataGridView.Columns) 
{ 
    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
} 

我的問題我沒能夠做同樣的行

這是我的代碼

//columns stretching 
foreach (DataGridViewColumn col in DG_dataGridView.Columns) 
{ 
    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
} 

var printSet = printDocument1.DefaultPageSettings; 
DG_dataGridView.Height = printSet.Bounds.Height; 

int headerHeight = DG_dataGridView.ColumnHeadersHeight; 
int height = DG_dataGridView.Size.Height - headerHeight; 
int rowHeight = height/DG_dataGridView.RowCount; // -1; 

//rows stretching 
for (int i = 0; i < DG_dataGridView.Rows.Count; i++) 
{ 
    DG_dataGridView.Rows[i].Height = rowHeight; 
} 

Bitmap bm = new Bitmap(DG_dataGridView.Width, DG_dataGridView.Height); 

DG_dataGridView.DrawToBitmap(bm, new Rectangle(0, 0, DG_dataGridView.Width, DG_dataGridView.Height)); 

bm.Save(System.IO.Directory.GetCurrentDirectory() + @"\latestBitTable.bmp"); 

回答

1

我相信這可能是由AutoSizeRowsMode財產造成的。例如,當它設置爲AllCells時,行將自動重新調整大小以適應單元格內容(無論您如何定義或設置代碼)。

也許將其設置爲None可能會解決您的問題。

dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; 

編程您想要的行爲時,下列文件可能是你有幫助:Sizing Options in the Windows Forms DataGridView Control

+0

編輯我的代碼,而現在它的作品! :) – LordTitiKaka

相關問題