![](/img/trans.png)
[英]How to set the DataSource of a DataGridView inside a ToolStripControlHost? (C# window forms)
[英]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.