首页 > 其他分享 >WinForm代码添加控件

WinForm代码添加控件

时间:2022-08-24 16:45:21浏览次数:111  
标签:控件 Name 添加 new btn Id pan WinForm

1.新建Winform程序

1.1拖一个 FlowLayoutPanel 控件

属性:
Dcok = Fill

1.2拖一个 Panel 控件

属性:
Margin = 10, 10, 10, 10
Visible = False

1.3拖一个 Label 控件

属性:
AutoSize = False
Size = 381, 23
TextAlign = MiddleLeft

1.4拖一个 Button 控件

以上这些是为了方便用代码的时候有个定位参考,大体了解位置

2.开始写代码

2.1新建类 TempData.cs

public class TempData
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

2.1新建类 panelyh.cs,重绘Panel的样式

代码太长就不拷贝了,后面放源代码

2.2模拟几条数据,并开始循环往 FlowLayoutPanel 中添加控件

List<TempData> list = new List<TempData>()
{
    new TempData{ Id=1, Age=12, Name="zs" },
    new TempData{ Id=2, Age=35, Name="ls" },
     new TempData{ Id=3, Age=29, Name="zl" }
};

for (int i = 0; i < list.Count; i++)
{
    flowLayoutPanel.Controls.Add(panel(list[i]));
 }

2.3代码实现 Panel

private Panel Pal(TempData T)
{
    panelyh pan = new panelyh();
    pan.BackColor = Color.WhiteSmoke;
    
    //添加Label
    pan.Controls.Add(Lbl(T));

    //添加Button
    pan.Controls.Add(Btn(T));

    pan.Dock = DockStyle.Top;
    pan.Location = new Point(10, 10);
    pan.Name = $"panel{T.Id}";
    pan.Size = new Size(535, 50);
    pan.BackColor = Color.White;
    return pan;
}

2.4代码实现 Label

private Label Lbl(TempData T)
{
    Label la = new Label
    {
        AutoSize = false,
        Margin = new Padding(5, 10, 3, 0),
        Font = new Font("微软雅黑", 10F, FontStyle.Bold),
        Location = new Point(19, 11),
        Name = $"lbl{T.Id}",
        Size = new Size(380, 30),
        TextAlign = ContentAlignment.MiddleLeft,
        Text = $"Id:{T.Id}    Age:{T.Age}    Name:{T.Name}"
     };
    return la;
 }

2.5代码实现 Button

private Button Btn(TempData T)
{
    Button btn = new Button
    {
        Cursor = Cursors.Hand,
        FlatStyle = FlatStyle.Flat,
        Font = new Font("微软雅黑", 10F, FontStyle.Bold, GraphicsUnit.Point, 
((byte)(134))),
        Location = new Point(427, 10),
        Margin = new Padding(0),
        Name = $"btn{T.Id}",
        Size = new Size(75, 30),
        Text = "按钮",
        TabIndex = 14,
        TextAlign = ContentAlignment.MiddleCenter,
        UseVisualStyleBackColor = false
    };
    btn.Click += delegate { btn_click(T.Id); };
    btn.FlatAppearance.BorderSize = 0;
    btn.FlatAppearance.MouseDownBackColor = Color.BlueViolet;
    btn.FlatAppearance.MouseOverBackColor = Color.Transparent;
    return btn;
}

private void btn_click(int id)
{
    MessageBox.Show($"点击按钮数据Id为:{id}");
}

3.下载链接

Demo下载链接: 百度云
提取码:1234

标签:控件,Name,添加,new,btn,Id,pan,WinForm
From: https://www.cnblogs.com/DotNeter-Hpf/p/16620666.html

相关文章

  • mfc调用ocx控件
    项目中,有时候三方公司提供ocx控件调用,下面介绍如何一步步调用。1)在任意目录存放三方ocx并进行注册和反注册测试,先保证三方ocx能注册成功reg.bat:regsvr32/uC:\xxx_......
  • jenkins试图添加job
    1.点击编辑试图  2.勾选job,点击OK ......
  • Centos7根目录扩容方法(添加一块磁盘扩容根目录)
    摘要业务服务器扩容磁盘,一般用户都比较喜欢把新增的磁盘容量扩容到原业务上的一个目录上,也就是说扩容业务目录的容量,其次情况下,同一目录下,无法挂载多个,不然会覆盖之前的挂......
  • 添加评论(十三)
    一、数据层增加评论数据。修改帖子的评论数量。由Mybatisplus实现。二、业务层处理添加评论的业务:先增加评论、再更新帖子的评论数量。DiscussPostService接口......
  • 为Nginx服务添加ServiceEntry和workloadEntry对象,治理目标为网格外部服务的出向流量
    测试在网格内部访问网格外部服务我是开了三台云主机每台都安装下docker和docker-compose第一台[root@VM-0-12-centos~]#catDeploy-Nginx/docker-compose.ymlversio......
  • 自定义Mybatis拦截器实现自动添加创建人修改人等公共字段
    摘要本文通过自定义Mybatis拦截器拦截Executor接口实现在插入和修改操作时自动添加创建人修改人等公共字段,话不多说,直接上代码定义Mybatis拦截器packagecom.syb.spring......
  • Java: 为Word文档添加水印
    Java:为Word文档添加水印添加水印是文档操作中一个非常实用的功能,通过给文档添加指定文字或图片水印既可以标识文档的状态,也可以维护文档版权,丰富其外观。在这篇文章中,我......
  • WPF 在 Xaml 中设置当控件显示时夺取焦点.
    以下以一个 TextBox 为例,当其变为可见时,获得焦点 <TextBoxx:Name="TextBoxName"/><TextBox.Style><StyleBasedOn="{StaticResource{......
  • 文件上传控件-如何上传文件-文件夹下载
    ​一、功能性需求与非功能性需求要求操作便利,一次选择多个文件和文件夹进行上传;支持PC端全平台操作系统,Windows,Linux,Mac支持文件和文件夹的批量下载,断点续传。刷新......
  • vue-router使用addRoute动态添加主界面的子路由
    1、需求描述从别处导出的可用前端文件,存放在系统@/views/下,不配置静态路由,当访问改菜单时,根据当前菜单的path动态向主界面(路由path:'/',name:'homePage')中添加子路由,使......