Panel容器

Panel容器的作用,可以呈放其他控件的容器

有滚动条,当显示内容太多可以显示滚动条

属性:Anchor,Dock,AutoScroll

 

知识点1:

Anchor和Dock都可以实现容器或控件的停靠

区别在于,使用Dock时Panel与父容器之间没有边距,而使用Anchor可以设置Panel与父容器之间的边距。

 

知识点2:

AutoScroll,当控件内容大于可见区域时,是否自动显示滚动条。

设置AutoScroll=true,效果如下:

 

 

 

 

知识点2:

实现如下功能,学习动态添加控件和遍历控件的方法。

 

 

 代码:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace ControlsTest
{
    public partial class FormPanel : Form
    {
        public FormPanel()
        {
            InitializeComponent();
            this.Load += FormPanel_Load;
        }

        private void FormPanel_Load(object sender, EventArgs e)
        {
            panel4.Controls.Clear();
            for (int i = 0; i < 7; i++)
            {
                CheckBox cb = new CheckBox();
                cb.Text = "选项" + i.ToString();
                cb.Size = new Size(60, 20);//见注意
                cb.Location = new Point(60 * i + 5, 5);
                panel4.Controls.Add(cb);
            }

            for (int i = 0; i < 7; i++)
            {
                RadioButton rb = new RadioButton();
                rb.Text = "单选" + i;
                rb.Size = new Size(60, 20);
                rb.Location = new Point(60 * i + 5, 30);
                panel4.Controls.Add(rb);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            List<string> list = new List<string>();
            string str = "";
            foreach (var item in panel4.Controls)
            {
                if (item is CheckBox)
                {
                    CheckBox cb = item as CheckBox;
                    if (cb.Checked)
                    {
                        list.Add(cb.Text);
                    }
                }
                if (item is RadioButton)
                {
                    RadioButton rb = item as RadioButton;
                    if (rb.Checked)
                    {
                        list.Add((string)rb.Text);
                    }
                }
            }
            str = String.Join(";", list);
            MessageBox.Show(str);
        }
    }
}

注意,动态添加控件时需要设置控件的大小,防止控件遮挡影响显示。

 

posted on 2022-10-20 10:01  hanzq_go  阅读(124)  评论(0编辑  收藏  举报

导航