Winform 后台将指定的控件集合添加到制定容器中
时间:2022-07-24
本文章向大家介绍Winform 后台将指定的控件集合添加到制定容器中,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 /// <summary>
2 /// 把按钮按照行数分割排列
3 /// </summary>
4 /// <param name="ControlArry">按钮集合</param>
5 /// <param name="control_parent">父容器</param>
6 /// <param name="RowCount">每一行数量</param>
7 /// <param name="ControlSize">控件大小</param>
8 /// <param name="pad">间隔大小</param>
9 private void ControlToControlResize(Control[] ControlArry, Control control_parent, int RowCount, Size? ControlSize, Padding pad)
10 {
11 //计算按钮相关信息
12 control_parent.Controls.Clear();
13 //列数
14 int yCount = 0; int xCount = RowCount;
15 if (ControlArry.Length < RowCount) //定义一列展示的数量大于总控件
16 {
17 yCount = 1;
18 }
19 else
20 {
21 yCount = ControlArry.Length % RowCount == 0 ? ControlArry.Length / RowCount : ControlArry.Length / RowCount + 1;
22 }
23 Padding ParentsPadding = control_parent.Padding;
24 Size btnSize = new System.Drawing.Size();
25 if (ControlSize != null)
26 {
27 btnSize = (Size)ControlSize;
28 }
29 else
30 {
31 btnSize.Width = Convert.ToInt32(Math.Floor(((double)control_parent.Width - (ParentsPadding.Left + ParentsPadding.Right)) / RowCount));
32 btnSize.Height = Convert.ToInt32(Math.Floor(((double)control_parent.Height - (ParentsPadding.Top + ParentsPadding.Bottom)) / yCount));
33 }
34 int index = 0;
35 for (int i = 0; i < yCount; i++)//行数
36 {
37 for (int j = 0; j < xCount; j++)//一行多少个
38 {
39 if (index >= ControlArry.Length)
40 {
41 break;
42 }
43 else
44 {
45 ControlArry[index].Size = btnSize;
46 ControlArry[index].Padding = pad;
47 ControlArry[index].Location = new Point(j * btnSize.Width + ParentsPadding.Left, i * btnSize.Height + ParentsPadding.Top);
48 index++;
49 }
50 }
51 }
52 control_parent.Controls.AddRange(ControlArry);
53 }
- 最新|官方发布:TensorFlow 数据集和估算器介绍
- 干货 | PyTorch相比TensorFlow,存在哪些自身优势?
- 用TensorFlow和TensorBoard从零开始构建ConvNet(CNN)
- 从零开始:手把手教你安装深度学习操作系统、驱动和各种python库!
- TensorFlow中的那些高级API
- 特征工程之Scikit-learn
- 浅谈NumPy和Pandas库(一)
- 例解生成对抗网络
- PyTorch和Tensorflow版本更新点
- 软件随想录:代码与数据
- 从 Pipe 到 Flow
- 代码命名:僧敲月下门
- GraphQL,你准备好了么?
- Let it crash: 因为误解,所以瞎说
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 嵌入式linux之go语言开发(十三)LittlevGL,漂亮的嵌入式GUI的go语言绑定
- 同事问我MySQL怎么递归查询,我懵逼了...
- RocketMQ学习四-生产者producer
- 想有自己的博客吗?浏览器支持 MarkDown和语法高亮的最简单示例(使用markdown-it、highlight.js和mermaid)
- Golang--Go语言 五百行后台代码实现一简约的个人博客网站-TinyBlog
- RocketMQ学习5
- c语言调用go封装的动态库步骤及减小体积包的方法
- 深入理解JavaScript闭包之闭包的使用场景
- Spring Boot 到底是个啥?
- Spring Boot 整合 Thymeleaf
- webapp打包为Android的apk包的一种方法
- Android应用之Hybird混合开发,集成web页面的方法尝试
- Spring Boot 通过 XML 的方式整合 MyBatis
- layUI登录界面验证码功能模块儿封装
- go语言微信公众号开发后台接口封装