winform设置子窗体的办法

本文介绍如何通过设置窗体属性及使用MdiParent属性创建多文档界面(MDI)应用程序。主要内容包括设置主窗体为MDI容器、创建子窗体,并通过代码实现子窗体与主窗体的关联。

1、首先你先建立一个窗体,窗体名称自定,然后把该窗体的属性“IsMdiContainer”为ture,这是一个重要的属性,窗体设置了这个属性就表示这个窗体为多文档应用程序的主窗体,它将作为子窗体的容器。

2、再新建一个窗体,是作为子窗体的,子窗体就不用设置什么属性了。

然后开始代码:

你需先了解多文档操作的一个属性:MdiParent——用于为子窗体设置关联的父窗体。

注明:新建一个子窗体,要在主窗体中创建菜单,例如——新建菜单。

第一步:在“新建菜单”点击事件中添加以下代码。

//创建一个子窗体对象,创建时要设置子窗体MdiParent属性,将此属性设置为它所属的主窗体对象“this”即可
  Document childForm = new Document();  //Document是我子窗体的名称,也就是类名

第二步:为子窗体设置关联的父窗体,然后现在子窗体。

            childForm.MdiParent = this;     //
            childForm.Show();


### 如何在 WinForms 窗体中添加和使用滚动条 #### 添加滚动条到窗体 对于WinForms中的窗体,如果希望整个窗体具备滚动功能,则通常不是直接给`Form`本身添加滚动条,而是通过嵌套可以自动管理控件布局以及提供滚动特性的容器来间接实现这一目标。例如,可以利用`Panel`作为承载其他控件的宿主,并启用其自动滚动特性。 ```csharp // 创建一个新的 Panel 控件实例 Panel panelWithScrollBars = new Panel(); // 启用自动水平和垂直滚动条 panelWithScrollBars.AutoScroll = true; // 设置面板大小小于内部内容尺寸以触发滚动条出现 panelWithScrollBars.Size = new Size(300, 200); // 将此面板添加至窗体内 this.Controls.Add(panelWithScrollBars); ``` 当向上述配置好的`Panel`内放置超过其可见区域范围的控件时,将会自动生成相应的滚动条以便浏览超出部分的内容[^1]。 #### 自定义滚动条行为 有时默认的行为可能不符合需求,比如想要控制何时显示滚动条或者调整它们的位置等。此时可以通过继承标准控件并覆盖特定的方法来自定义逻辑。针对阻止`Panel`内的滚动条自动移动的情况已有现成方案[^2]: ```csharp public class CustomPanel : Panel { protected override Point ScrollToControl(Control activeControl) { // 返回当前坐标防止自动滚动发生 return this.DisplayRectangle.Location; } } ``` 这段代码创建了一个名为`CustomPanel`的新类,它继承自原生的`Panel`类,并重写了`ScrollToControl`方法使得即使焦点发生变化也不会引起不必要的视图偏移。 至于改变滚动条本身的外观样式如宽度等问题,在.NET Framework层面并不直接支持此类细粒度定制;不过有变通办法是借助操作系统的API接口或是修改注册表项达成目的,但这往往涉及到更复杂的编程技巧并且可能会带来兼容性和稳定性风险[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值