我在C#中使用Windows窗体时遇到了麻烦,我使用了一个码头,以便在界面顶部的菜单中选择几个窗体时显示它们,这是OK的,它显示了我期望的窗体,但有一点细节:形式的最重要的部分,其中显示的按钮,将允许您保存,编辑或删除被切断,即使当我设置的形式填补其码头功能显示它(这是一个所谓的abrirForm),所以我需要正确显示完整的形式码头。下面是图片和相关代码。
你怎么看,我用的是enter image description here s
这是enter image description here
这是显示在码头内的形式的方法(它被称为“Contenedor”,它也改变了按下的选项的颜色:
private void abrirForm(IconMenuItem menu, Form formulario)
{
if(MenuActivo != null) {
MenuActivo.BackColor = Color.White;
}
menu.BackColor = Color.Silver;
MenuActivo = menu;
if(FormularioActivo != null)
{
FormularioActivo.Close();
}
FormularioActivo = formulario;
formulario.TopLevel = false;
formulario.FormBorderStyle = FormBorderStyle.None;
formulario.Dock = DockStyle.Fill;
formulario.BackColor = Color.PaleGreen;
Contenedor.Controls.Add(formulario);
formulario.Show();
}
这是designer.cs中的dock配置:
this.Contenedor.AllowDrop = true;
this.Contenedor.Cursor = System.Windows.Forms.Cursors.Default;
this.Contenedor.Dock = System.Windows.Forms.DockStyle.Fill;
this.Contenedor.Location = new System.Drawing.Point(0, 132);
this.Contenedor.Name = "Contenedor";
this.Contenedor.Size = new System.Drawing.Size(918, 503);
this.Contenedor.TabIndex = 3;
this.Contenedor.Paint += new System.Windows.Forms.PaintEventHandler(this.Contenedor_Paint);
1条答案
按热度按时间vktxenjb1#
在您的情况下,可以利用控件自动调整大小属性。
由于您的子控件公式没有主窗体的大小,因为菜单按钮占用了额外的空间,您需要做的是寻找一种方法来自动增加添加到面板的控件,幸运的是,如上所述,有一个属性Autosize,当您添加子控件到面板时,永远不要设置子控件停靠填充,因为它考虑了主控件的大小,因此,为了解决您的问题,您需要做一些更改。
删除此行:
Formulario.Dock = DockStyle.Fill;
为主窗体和您以数字方式添加控件的面板设置自动缩放,因此添加以下内容:
true;
Contenedor.AutoSize = true;
所以abrirForm函数看起来是:
请注意:
如果上述解决方案不起作用是因为未提供公式代码。请随意分享。