精华内容
下载资源
问答
  • C#动态生成控件并布局
    2021-06-11 15:20:11

    在某些开发中,我们可能需要根据实际用户需求来动态创建对应的控件,所以下列示例用代码动态创建label标签并进行布局,当然在实际应用开发中,我们可以自定义相关控件,然后利用此方法动态生成

    布局有两种方式:

    1、直接指定在窗体上的坐标

    2,创建FlowLayoutPanel实例控件,把动态生成的控件添加其中

    实现效果:创建9个label标签,在FlowLayoutPanel当中整齐显示,如下图

     

    代码实现 

            FlowLayoutPanel flowLayoutPanel;
            private void Form1_Load(object sender, EventArgs e)
            {
                //生成自动排列控件FlowLayoutPanel
                flowLayoutPanel = new FlowLayoutPanel();
                flowLayoutPanel.BackColor = Color.Red;
                flowLayoutPanel.Location = new System.Drawing.Point(100, 100);
                flowLayoutPanel.Name = "flowLayoutPanel1";
               
                flowLayoutPanel.Size = new System.Drawing.Size(200, 100);
                flowLayoutPanel.TabIndex = 1;
                flowLayoutPanel.Visible = true;
                this.Controls.Add(this.flowLayoutPanel);   //窗体当中添加FlowLayoutPanel控件
    
                Run();
             }
    
    
            int labelNum = 0;     //生成标签控件标识
            private void Run()
            {
                try
                {
                    for (int i = 0; i < 10; i++)
                    {
                        labelNum++; // 标记标签序号
                        AddLabel();
                    }
                }
                catch
                {
                }
            }
            Label[] labels = new Label[9];  //存放动态生成的控件
            private void AddLabel()
            {
                /* 添加label */
                Label labelTemp = new Label();
                labelTemp.AutoSize = true;
                labelTemp.Font = new Font("微软雅黑", 10F, FontStyle.Regular, GraphicsUnit.Point, 134);
                // 设置字体
    
                labelTemp.Visible = true;
                labelTemp.Name = "label" + labelNum.ToString();
                switch (labelNum)
                {
                    case 1:
                        labelTemp.Text = "西湖";
                        labelTemp.Location = new Point(150, 60);
                        break;
                    case 2:
                        labelTemp.Text = "长城";
                        labelTemp.Location = new Point(150, 90);
                        break;
                    case 3:
                        labelTemp.Text = "故宫";
                        labelTemp.Location = new Point(150, 120);
                        break;
                    case 4:
                        labelTemp.Text = "外滩";
                        labelTemp.Location = new Point(150, 150);
                        break;
                    case 5:
                        labelTemp.Text = "泰山";
                        labelTemp.Location = new Point(150, 180);
                        break;
                    case 6:
                        labelTemp.Text = "黄山";
                        labelTemp.Location = new Point(150, 30);
                        break;
                    case 7:
                        labelTemp.Text = "庐山";
                        labelTemp.Location = new Point(150, 60);
                        break;
                    case 8:
                        labelTemp.Text = "天坛";
                        labelTemp.Location = new Point(150, 90);
                        break;
                    case 9:
                        labelTemp.Text = "漓江";
                        labelTemp.Location = new Point(150, 180);
                        break;
                    case 10:
                        labelTemp.Text = "大理";
                        labelTemp.Location = new Point(150, 30);
                        break;
                    default:
                        break;
                }
                labels[labelNum - 1] = labelTemp;
                Controls.Add(labelTemp);   //直接添加到窗体的定位处
                flowLayoutPanel.Controls.Add(labelTemp);  //添加到布局里面
            }

     

    更多相关内容
  • asp.net 动态添加控件

    2017-11-06 21:33:31
    asp.net 动态添加控件,C# 代码。动态添加控制的一个小实例。希望对大家有用。。。
  • 第一次玩这个,自己在学习过程中需要用到动态生成控件,参考了些资料,写了个生成label控件的方法,希望大家喜欢。
  • m_gLayout->addWidget(m_labelcreate.at(itemIndex),i,j+lineEditindex); m_gLayout->addWidget(m_lineEditcreate.at(itemIndex),i,j+lineEditindex+1);
  • 动态生成控件

    2018-01-13 09:12:31
    动态生成控件 通过代码设置设置控件的属性,如背景色 字体颜色等
  • Wpf Mvvm 动态创建控件

    2020-03-09 17:33:32
    根据传值控件名称(如TextBox,CheckBox,ComboBox,CheckBoxList,DatePicker等) 动态生成控件,选中或设置值后取值
  • 动态添加控件,自定义的或代码实现,适合学习
  • pyqt5 实现 主窗口中动态添加控件 自己使用的笨方法,但是效果一样
  • ACCESS窗体 原生的控件都是无法动态添加的,但是我通过添加一个Frame容器控件,实现了这个想法。...并且能够获取到动态添加控件的事件。 只是,动态添加的控件必须是UserForm控件了,一些属性、方法、事件稍有不同!
  • 代码比较简单,所以不多做解释了:
  • 在项目开发时,可能遇到动态创建控件的情况。如根据当前用户的数量,动态创建控件显示用户信息等情况,需要动态常见静态文本框和编辑框等,这里提供一个例程供大家参考。
  • java代码动态生成控件

    2014-05-12 14:36:48
    java代码动态生成控件,代码比较简单,界面也相对比较单调,不过如何通过代码动态生成控件等,写的很明确。
  • python例程1.exec动态生成控件.7z
  • 动态添加控件

    2017-11-01 16:13:54
    在VB6窗口内动态添加标签、文本框、按钮、复选框、单选框、下拉框、列表框以及容器等控件,全源码。
  • 一个很实用的小demo,动态生成控件并实现布局,有一定启发思想,共同学习
  • 在C#中动态添加控件
  • c#动态添加控件

    2015-03-25 22:14:29
    c# winform 右键菜单 添加删除 动态添加
  • 在GUI界面中动态创建控件
  • WPF动态生成控件

    千次阅读 2020-04-28 21:40:37
    WPF动态生成控件 作者:李嘉乐 本次任务完成时间:2020年4月20日~2020年4月28日 开发工具与关键技术: VS2015、C#、WPF 完成的功能: 编写模板保存 1、首先搭建一个主体界面,在界面的“WrapPanel”里动态生成多个...

    WPF动态生成控件
    作者:李嘉乐
    本次任务完成时间:2020年4月20日~2020年4月28日
    开发工具与关键技术: VS2015、C#、WPF
    完成的功能: 编写模板保存

    1、首先搭建一个主体界面,在界面的“WrapPanel”里动态生成多个控件Button,界面代码如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    效果图;
    在这里插入图片描述

    二、通过连表查询桌台,根据桌台状态生成控件。代码如下:
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    效果图如下:

    在这里插入图片描述

    二.总结:
    自己对代码的理解还不够,还需要更加的努力,坚持多写,多想,多做,多实践。

    展开全文
  • Android动态生成控件

    千次阅读 2020-05-17 20:17:28
    在页面声明一个容器: 取得容器的id,并把当前的...//动态添加控件 //===1、添加外部LinerLayout LinearLayout layout=new LinearLayout(mActivityContext); //==1.1、设置LinearLayout的布局 LinearLayout.Layou.
    1. 在页面声明一个容器:
    2. 在这里插入图片描述
      1. 取得容器的id,并把当前的Activity声明为全局的变量:
    3. private Activity mActivityContext;
      并赋值:mActivityContext=this;
    4. 然后,添加一个简单的控件:
    5. //动态添加控件
      //===1、添加外部LinerLayout
      LinearLayout layout=new LinearLayout(mActivityContext);
      //==1.1、设置LinearLayout的布局
      LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(
      ViewGroup.LayoutParams.MATCH_PARENT,
      ViewGroup.LayoutParams.WRAP_CONTENT
      );
      layout.setLayoutParams(layoutParams);
      //===1.2、设置为横向布局
      layout.setOrientation(LinearLayout.HORIZONTAL);
    6. //==1.3、将容器添加到外部容器llOrderDetail
      llOrderDetail.addView(layout);
    7. 添加文字:
      在这里插入图片描述
    8. 添加虚线:
    9. ![
    10. ](https://img-blog.csdnimg.cn/2020051720165296.png)
    11. 在这里插入图片描述
    12. 最后,记得将控件添加到页面的容器就行了;addView();
    展开全文
  • Qt动态添加控件

    千次阅读 2020-11-17 10:24:31
    以下是添加20个控件组的效果,控件过多会自动添加滚动条 点击delete按钮可以删除所有控件组,同样可以知道是哪个按钮点击的。 实现 代码参考了网上的,自己做了一些修改。 创建一个新的控件组类,布局,开出接口供...

    前言

    很多时候我们可以在UI designer上拖拽控件进行编写UI,但有的时候需要的控件数量是未知的,这时候就需要在代码中进行编写了。

    效果

    以下是添加2个控件组的效果

    在这里插入图片描述
    以下是添加20个控件组的效果,控件过多会自动添加滚动条
    在这里插入图片描述
    点击delete按钮可以删除所有控件组,同样可以知道是哪个按钮点击的。

    实现

    代码参考了网上的,自己做了一些修改。
    创建一个新的控件组类,布局,开出接口供外部调用

    void setInfo(QString str_lb,QString str_btn);
    
    void Mybtns::setInfo(QString str_lb, QString str_btn)
    {
        ui->label->setText(str_lb);
        ui->pushButton->setObjectName(str_btn);
    }
    

    MAINWINDOW_H

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QHBoxLayout>
    #include <QPushButton>
    #include <QDebug>
    #include "mybtns.h"
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    private slots:
        void slotBtnClicked();
        void on_pushButton_clicked();
    
        void on_pushButton_2_clicked();
    
    private:
        Ui::MainWindow *ui;
        QList<Mybtns*> list_widget;
        QList<QPushButton *> btn ;
    
    };
    
    #endif // MAINWINDOW_H
    
    

    .cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        for (int i = 0; i < 20; i++)
        {
            Mybtns *widget = new Mybtns();
            list_widget.append(widget);
            ui->vlayout->addWidget(widget);
            widget->setInfo("张三(123456)","#" + QString::number(i));
        }
    
    
    
        btn = this->findChildren<QPushButton *>();
        foreach (QPushButton * b, btn) {
            connect(b, SIGNAL(clicked()), this, SLOT(slotBtnClicked()));
        }
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::slotBtnClicked()
    {
        QPushButton *btn = (QPushButton *)sender();
        QString objectName = btn->objectName();
        if(objectName.indexOf("#") !=  -1)
        {
            objectName.replace("#","");
            qDebug()<<objectName;
        }
        qDebug()<<objectName;
    }
    
    void MainWindow::on_pushButton_clicked()
    {
    
        int num = ui->vlayout->count();             // 获取布局中的item的数量
    
        while( num){
            QWidget *widget = ui->vlayout->itemAt(num - 1)->widget();
            ui->vlayout->removeWidget(widget);
            delete widget;
            num --;
        }
    }
    
    void MainWindow::on_pushButton_2_clicked()
    {
        int num = ui->vlayout->count();             // 获取布局中的item的数量
    
        while( num){
            QWidget *widget = ui->vlayout->itemAt(num - 1)->widget();
            ui->vlayout->removeWidget(widget);
            delete widget;
            num --;
        }
        
        for (int i = 0; i < 20; i++)
        {
            Mybtns *widget = new Mybtns();
            list_widget.append(widget);
            ui->vlayout->addWidget(widget);
            widget->setInfo("张三(123456)","#" + QString::number(i));
        }
    
    //防止删除后无法找到btn控件
         btn = this->findChildren<QPushButton *>();
          foreach (QPushButton * b, btn) {
              connect(b, SIGNAL(clicked()), this, SLOT(slotBtnClicked()),Qt::UniqueConnection);
          }
    }
    
    
    

    链接

    链接: Qt动态添加控件demo

    展开全文
  • Qt动态生成控件

    千次阅读 2020-03-23 09:47:26
    实现功能:根据输入的数字,动态添加对应数量的按钮。 初学时参考了很多博文,内容良莠不齐,甚至还有一些莫名其妙的答案,在此我将最简单的核心代码分享给大家。 1.Qt Designer中设计窗口,其包含一个按钮和一个...
  • LABVIEW中动态添加控件

    热门讨论 2011-11-16 18:56:18
    可以在labview中动态添加控件。其中的send.vi为发送程序,可以在运行时在receive.vi中添加一个字符串控件。
  • C#动态生成控件以及添加事件处理
  • Android 动态生成多个控件并实现点击
  • Qt动态添加控件demo

    2020-11-17 10:27:40
    很多时候我们可以在UI designer上拖拽控件进行编写UI,但有的时候需要的控件数量是未知的,这时候就需要在代码中进行编写了。
  • qtcreater动态添加控件

    千次阅读 2020-07-19 20:02:08
    QTCTREATER动态添加控件 卸载前面:项目中用到动态加载控件的情况,用户选择增加集群内ip的情况,有多少不好说,所以考虑动态添加,留个记录! qt界面为ui布局+代码实现: UI部分很简单,如下: 图1.这是界面布局...
  • WpfApp_Move(自定义控件的放大缩小,动态添加控件保存)源代码WpfApp_Move(自定义控件的放大缩小,动态添加控件保存)源代码 可动态多动控件,放大控件,添加控件,添加属性保存到xml中启动的时候读取。
  • C#批量动态生成控件

    2020-06-24 22:28:05
    有时候我们需要动态添加一些功能相似的控件,而且这些控件可能是容器 po采用了类的方法,下面以动态生成元器件为例: 1.首先先做出一个panel,里面可能有picturebox,button等控件,这都没关系,先做出来可以方便我们...
  • wpf绑定数据及动态生成控件

    千次阅读 2020-06-15 16:52:24
    前言:从来没使用过wpf,但是最近的项目需要使用到这...1.datagrid动态绑定数据 xmal代码: <DataGrid x:Name="dataGrid" Margin="0,52,0,65" AutoGenerateColumns="False" LoadingRow="dataGrid_LoadingRow"...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 723,132
精华内容 289,252
关键字:

动态生成控件