首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果控件位于ToolStripControlHost中,如何设置DataGridView的Height属性?C# WINFORMS

如果控件位于ToolStripControlHost中,如何设置DataGridView的Height属性?C# WINFORMS
EN

Stack Overflow用户
提问于 2010-09-13 14:43:20
回答 2查看 1.7K关注 0票数 0

我有一个TextBox,每当用户按下F1键时,它都会在contextMenuStrip中显示一个DataGridView。我使用ToolStripControlHost在contextMenuStrip中托管dataGridView。请考虑我的代码:

代码语言:javascript
复制
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的大小来调整其高度。

我的代码中遗漏了什么吗?请帮帮我..谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-15 14:47:36

我已经想好了。我刚刚添加了以下代码:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2010-09-13 16:57:24

您不能直接更改dataGridView1的高度,因为它在其他控件中-因此它的高度受其父控件大小的限制。如果你想改变它的高度,你应该改为改变contextMenuStrip1和tsHost的高度。我更喜欢这样做:

代码语言:javascript
复制
dataGridView1.Dock = DockStyle.Fill;
tsHost.Dock = DockStyle.Fill;
contextMenuStrip1.Height = 30;

如果不起作用,请尝试查找contextMenuStrip1的父控件并更改它们的高度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3698287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档