C#控件随窗体变化

本文介绍了如何在C#中使窗体控件随着窗体尺寸的变化自动调整大小。通过在窗体加载事件中调用'controllInitializeSize'函数,并在窗体改变事件中调用'controlAutoSize'函数,实现控件尺寸的动态适应。
摘要由CSDN通过智能技术生成
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace HR
{
    class AutoSizeFormClass
    {
        //(1).声明结构,只记录窗体和其控件的初始位置和大小。
        public struct controlRect
        {
            public int Left;
            public int Top;
            public int Width;
            public int Height;
        }
        //(2).声明 1个对象
        //注意这里不能使用控件列表记录 List nCtrl;,因为控件的关联性,记录的始终是当前的大小。
        //      public List oldCtrl= new List();//这里将西文的大于小于号都过滤掉了,只能改为中文的,使用中要改回西文
        public List<controlRect> oldCtrl = new List<controlRect>();
        int ctrlNo = 0;//1;
        //(3). 创建两个函数
        //(3.1)记录窗体和其控件的初始位置和大小,
        public void controllInitializeSize(Control mForm)
        {
            controlRect cR;
            cR.Left = mForm.Left; cR.Top = mForm.Top; cR.Width = mForm.Width; cR.Height = mForm.Height;
            oldCtrl.Add(cR);//第一个为"窗体本身",只加入一次即可
            AddControl(mForm);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用
     
C#中,将控件放置在窗体的正中央通常涉及以下几个步骤: 1. **创建窗体**:首先你需要创建一个新的Windows Form程序,这是C#中显示用户界面的基本单元。 2. **添加控件**:从工具箱中选择想要放置的控件,比如`Label`, `TextBox`, `PictureBox`等。点击并拖动到窗体上。默认情况下,控件会被添加到窗体的左上角。 3. **设置位置**:为了让控件位于窗体中心,你可以通过以下方法调整其位置: - 对于Form级别的控件,可以手动设置它的`Left`和`Top`属性。例如,如果你希望控件宽度的一半在窗体左侧,高度的一半在上方,可以这样做: ```csharp yourControl.Left = (yourForm.Width / 2); yourControl.Top = (yourForm.Height / 2); ``` - 或者使用`CenterToScreen()`方法,它会自动将控件居中到屏幕: ```csharp yourControl.CenterToScreen(); ``` 4. **布局管理器**:为了更方便地管理和对齐控件,可以考虑使用`LayoutPanel`、`TableLayoutPanel`或者`FlowLayoutPanel`这样的控件,它们提供更高级别的布局选项,如网格布局或流式布局。 5. **动态布局**:如果控件的数量或大小可能会变化,使用Docking或Anchor属性可以让控件自动适应容器的变化。 6. **保存窗体显示效果**:记得在窗体加载时或者显示之前执行上述调整,以便用户看到的是预期的布局。 记得每次运行程序前都要检查控件的位置是否满足需求,因为控件的初始位置可能会受到其他因素的影响,如控件的大小约束或父容器的布局设置。如果你需要更具体的帮助,例如如何在特定控件之间保持间距,也可以告诉我。下面是几个关于控件定位的问题供参考:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值