当前位置: 首页 > news >正文

网站跳出率房地产的未来趋势分析

网站跳出率,房地产的未来趋势分析,兰州市城市建设设计院,c2c平台分类为什么需要自适应布局? 在现代软件开发中,应用程序需要运行在各种不同分辨率和DPI设置的设备上。传统的固定像素布局方式已无法满足需求,自适应布局成为必备技能。本文将全面解析C# WinForm中实现完美自适应布局的各类技术方案,特…

为什么需要自适应布局?

在现代软件开发中,应用程序需要运行在各种不同分辨率和DPI设置的设备上。传统的固定像素布局方式已无法满足需求,自适应布局成为必备技能。本文将全面解析C# WinForm中实现完美自适应布局的各类技术方案,特别针对Halcon混合开发场景进行深度优化。

下面是一个完整的自适应布局 AutoControlSize.cs工具类实现,包含构造函数初始化和控件触发逻辑:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Windows.Forms;
using System.ComponentModel;
using System.Data;
using System.Drawing;namespace WinForms1.Attrs
{public class AutoControlSize{private static Queue<Control> MyControlQuery_Init = new Queue<Control>();//初始化控件集合队列private static ArrayList MyControlInfoList_Init = new ArrayList();//初始化控件参数集合private static Int32 MainDlg_H_Init;//初始化主对话框参数private static Int32 MainDlg_W_Init;//初始化主对话框参数private static Int32 MainDlg_H_Curr;//当前主对话框参数private static Int32 MainDlg_W_Curr;//当前主对话框参数private struct ControlInfo//控件参数结构体{public string ControlName;public Int32 Height;public Int32 Width;public Int32 Loc_X;public Int32 Loc_Y;}private static void FormControlList(Control item)//递归遍历控件{for (int i = 0; i < item.Controls.Count; i++){if (item.Controls[i].HasChildren){FormControlList(item.Controls[i]);}ControlInfo Node = new ControlInfo();Node.ControlName = item.Controls[i].Name;Node.Height = item.Controls[i].Height;Node.Width = item.Controls[i].Width;Node.Loc_X = item.Controls[i].Location.X;Node.Loc_Y = item.Controls[i].Location.Y;MyControlInfoList_Init.Add(Node);MyControlQuery_Init.Enqueue(item.Controls[i]);}}private static void GetMainFromSize_Init(Form MyForm)//获取初始化对话框参数{MainDlg_H_Init = MyForm.Height;MainDlg_W_Init = MyForm.Width;}private static void GetMainFromSize_Curr(Form MyForm)//获取当前对话框参数{MainDlg_H_Curr = MyForm.Height;MainDlg_W_Curr = MyForm.Width;}public static void RegisterFormControl(Form MyForm)//注册对话框所以控件{FormControlList(MyForm);GetMainFromSize_Init(MyForm);}public static void ChangeFormControlSize(Form MyForm)//使能AutoSize{GetMainFromSize_Curr(MyForm);Control myQuery;Queue<Control> ControlQuery = new Queue<Control>(MyControlQuery_Init);ControlInfo Node = new ControlInfo();Int32 i = 0;Int32 count = ControlQuery.Count;for (i = 0; i < count; i++){myQuery = ControlQuery.Dequeue();Node = (ControlInfo)MyControlInfoList_Init[i];myQuery.Height = (Int32)(Node.Height * (MainDlg_H_Curr / (double)MainDlg_H_Init));myQuery.Width = (Int32)(Node.Width * (MainDlg_W_Curr / (double)MainDlg_W_Init));myQuery.Location = new Point((Int32)(Node.Loc_X * (MainDlg_W_Curr / (double)MainDlg_W_Init)),(Int32)(Node.Loc_Y * (MainDlg_H_Curr / (double)MainDlg_H_Init)));}}}
}

将"AutoControlSize.RegisterFormControl(this);"添加到Form的构造函数里控件初始化函数中;

AutoControlSize.RegisterFormControl(this);

打开窗体设计器 在 解决方案资源管理器 中,双击打开你的窗体文件(如 Form1.cs),进入 设计视图
找到 Resize 事件
  • 选中控件列表中的 窗体本身(不是里面的按钮或其他控件)。

  • 打开右侧的 属性窗口(按 F4 或右键 → 属性)。

  • 点击顶部的小闪电图标(事件图标),进入事件列表。

  • 找到 Resize 事件,双击它

3. 自动生成事件响应函数
  • Visual Studio 会自动在代码中生成如下函数

http://www.dtcms.com/a/613787.html

相关文章:

  • 家庭网络建站广告设计公司服务不到位
  • SAP FICO工单成本分析报表
  • 破解版网站建设营销运营推广服务
  • 告别“在我电脑上能跑”:Docker入门与核心概念解析
  • 2. YOLOv5 搭建一个完整的目标检测系统核心步骤
  • discuz培训网站模板下载wordpress直接显示文章
  • R语言编程基础与应用 | 探索数据分析的无限可能
  • 北京网站设计网站设计公司价格工商做年报网站
  • 商丘网站建设网站推广镇江做网站的
  • Nginx安全策略
  • NumPy 从数值范围创建数组
  • 网站备案贵州电话学产品设计的可以找什么工作
  • 刷网站排名 优帮云企业所得税什么时候申报缴纳
  • P5736 【深基7.例2】质数筛题解(重置版!)
  • Qt--通过JLinkARM.dll实现Jlink自动烧写
  • gitlab cicd 模块解释
  • 如何实现带历史记录功能的控制台2048游戏
  • gitlab cicd首次操作
  • 建设学院网站意义比价 wordpress 插件下载
  • 电子毕业设计代做网站上海雷蒙威手表网站
  • LangChain Memory
  • 【ZeroRange WebRTC】NACK(Negative Acknowledgment)技术深度分析
  • 物联网架构
  • 网站推广公司兴田德润在哪儿wordpress 手机支付
  • 如何在 VSCode 中创建 Vue 项目
  • 【ZeroRange WebRTC】PLI(Picture Loss Indication)技术深度分析
  • 神马影视 8.8 源码 2025 版,HDR + 杜比音效 + 零卡顿
  • MFC编程实战:全面掌握Combo Box(组合框)控件的高级应用
  • 归并排序 (BM20 数组中的逆序对)
  • Spring @Around 注解