簡體   English   中英

如果控件位於ToolStripControlHost內部,如何設置DataGridView的Height屬性? C#WINFORMS

[英]How to set DataGridView's Height properties if the control is inside a ToolStripControlHost? C# WINFORMS

我有一個TextBox,它將在用戶每次按F1鍵時在contextMenuStrip中顯示一個DataGridView。 我使用ToolStripControlHost在contextMenuStrip中托管dataGridView。 請考慮我的代碼:

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的大小調整其高度。

我的代碼中缺少什么? 請幫助..謝謝。

您不能直接更改dataGridView1的高度,因為它位於其他控件中-因此,其高度受其父控件的大小限制。 如果要更改其高度,則應更改contextMenuStrip1和tsHost的高度。 我更喜歡這樣:

dataGridView1.Dock = DockStyle.Fill;
tsHost.Dock = DockStyle.Fill;
contextMenuStrip1.Height = 30;

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

我已經知道了。 我剛剛添加了以下代碼:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM