2010-09-13 57 views
0

我有一個TextBox,每次用戶按下F1鍵時都會在contextMenuStrip中顯示一個DataGridView。我使用ToolStripControlHost來承載contextMenuStrip中的dataGridView。請考慮我的代碼:如果控件位於ToolStripControlHost中,如何設置DataGridView的Height屬性? C#WINFORMS

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyData == Keys.F1) 
    { 
     dataGridView1.BindingContext = this.BindingContext; 
     dataGridview1.Height = 30; 
     dataGridView1.DataSource = dt; // some DataTable with 50+ rows,..or greater. 

     ToolStripControlHost tsHost = new ToolStripControlHost(dataGridView1); 
     contextMenuStrip1.Items.Clear(); 
     contextMenuStrip1.Items.Add(tsHost); 

     contextMenuStrip1.Show(textBox1, 0, 27); 
    } 
} 

我的問題是我不能設置在DataGridView的編程高度時,它在的ContextMenuStrip已經被添加作爲一個項目。由於我無法設置網格的高度,因此它會根據其dataSource的大小調整其高度。

我錯過了我的代碼中的東西?請幫助..謝謝。

+0

設置主機的高度。 – 2010-09-13 10:45:55

回答

0

我已經想通了。我剛添加了這段代碼:

ToolStripControlHost tsHost = new ToolStripControlHost(dataGridView1); 
tsHost.AutoSize = false; // Set AutoSize property to false. 
tsHost.Height = 30;  // then set Height property value. 
contextMenuStrip1.Items.Clear(); 
contextMenuStrip1.Items.Add(tsHost); 
0

您不能直接更改dataGridView1的高度,因爲它位於其他控件內部 - 因此它的高度受限於其父控件的大小。如果你想改變它的高度,你應該改變contextMenuStrip1和tsHost的高度。我更喜歡這樣做:

​​

如果它不起作用,請嘗試查找contextMenuStrip1的父控件並更改它們的高度。

+0

謝謝,但仍然無法正常工作.. – yonan2236 2010-09-15 06:48:02

相關問題