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

C#: form 窗体的各种操作

说明:记录 C# form 窗体的各种操作

1. C# form 窗体居中显示

// 获取屏幕的宽度和高度
int screenWidth = Screen.PrimaryScreen.Bounds.Width;
int screenHeight = Screen.PrimaryScreen.Bounds.Height;// 设置窗体的位置
this.StartPosition = FormStartPosition.Manual;
this.Left = (screenWidth - this.Width) / 2;
this.Top = (screenHeight - this.Height) / 2;

2. C# form 窗体设置最大、最小尺寸

3. C# form 窗体大小改变时控件跟着变大、移动

        在C# Win Form中,可以通过设置控件的Anchor属性来实现窗口拉大时其他控件跟着变大的效果。Anchor属性指定了控件与其父容器之间的边界锚定方式。

        例如,如果你想要一个按钮在窗口拉大时保持在左上角不变,可以将该按钮的Anchor属性设置为Left和Top。这样,当窗口拉大时,按钮会保持在窗口的左上角位置。

        以下是一个示例代码,演示了如何设置按钮的Anchor属性来实现窗口拉大时其他控件跟着变大的效果:

private void Form1_Load(object sender, EventArgs e)
{// 设置按钮1的Anchor属性为Left和Topbutton1.Anchor = AnchorStyles.Left | AnchorStyles.Top;// 设置按钮2的Anchor属性为Left和Topbutton2.Anchor = AnchorStyles.Left | AnchorStyles.Top;
}

        在上述示例中,按钮1和按钮2的Anchor属性都被设置为Left和Top,这意味着它们会保持在窗口的左上角位置,当窗口拉大时,它们会随着窗口的大小变化而变大。

4. C# form 窗体尺寸改变事件添加

应用:如 C# form 窗口怎么设置最小尺寸,拖动改变大小时达到最小尺寸不再改变。
注意:这只是应用举例,最小尺寸可以在窗口属性中设置,下面的方法在拖到最小时窗口显示效果会抖动。

        这段代码将窗口的最小尺寸设置为300x200,并且在窗口大小改变时检查窗口的宽度和高度是否小于最小尺寸,如果是,则将宽度和高度设置为最小尺寸。

private void Form1_Load(object sender, EventArgs e)
{this.MinimumSize = new Size(300, 200); // 设置窗口的最小尺寸为300x200this.Resize += new EventHandler(Form1_Resize); // 添加窗口大小改变的事件处理程序
}private void Form1_Resize(object sender, EventArgs e)
{if (this.Width < 300){this.Width = 300; // 如果窗口宽度小于最小宽度,将宽度设置为最小宽度}if (this.Height < 200){this.Height = 200; // 如果窗口高度小于最小高度,将高度设置为最小高度}
}

5. C# Form 界面关闭鼠标右键功能

        关键词:关闭鼠标右键,禁用鼠标右键
        在C# Windows Forms 应用程序中,要关闭鼠标右键功能,您可以通过设置窗体的 Form 属性来实现。具体来说,您可以将 Form 的 RightToLeftLayout 属性设置为 true。这将导致窗体上的控件(如菜单和工具栏)在鼠标右键单击时不会显示上下文菜单。
        以下是一个简单的示例,演示如何关闭鼠标右键功能:

public partial class MyForm : Form  
{  public MyForm()  {  InitializeComponent();  this.RightToLeftLayout = true; // 关闭鼠标右键功能  }  
}

        请注意,这将影响窗体上的所有控件,包括那些没有默认上下文菜单的控件。因此,您需要确保这是您真正想要的行为。
        另外,如果您只想针对特定的控件禁用右键菜单,您可以使用控件的 ContextMenuStrip 属性并将其设置为 null。例如:

// 假设有一个名为 myControl 的控件  
myControl.ContextMenuStrip = null; // 禁用该控件的右键菜单

这种方法只会影响指定的控件,而不会影响窗体上的其他控件。

6. C# 不同form 中定义的变量怎么互相引用(共用)

        在C#中,如果你想在不同的Form之间共享变量,通常有以下几种方法:

        可以在程序的类级别定义一个全局变量,所有的Form都可以访问这个变量。但是,这种方法并不推荐,因为它可能会导致代码难以维护和理解。

public static class GlobalVariables  
{  public static int SharedVariable = 0;  
}

然后在任何Form中引用这个变量:

int value = GlobalVariables.SharedVariable;

2.属性或字段: 

        可以在主Form中定义一个属性或字段,然后从其他Form中访问它

public partial class MainForm : Form  
{  private int sharedVariable;  public int SharedVariable  {  get { return sharedVariable; }  set { sharedVariable = value; }  }  
}

然后在其他Form中这样引用:

MainForm mainForm = new MainForm();  
int value = mainForm.SharedVariable; // 或者 mainForm.sharedVariable; 如果属性是public的

3.使用静态类:

        创建一个静态类来存储和管理全局变量。静态类的一个好处是,你不需要创建类的实例就可以访问它的静态成员。

public static class SharedVariables  
{  public static int SharedVariable { get; set; }  
}

然后在任何Form中引用这个变量:

int value = SharedVariables.SharedVariable;

4.通过接口:

        如果你希望有一种更结构化的方式来在不同Form之间共享数据,你可以定义一个接口,然后让含有你需要的数据的Form实现这个接口。

public interface IDataSharable  
{  int SharedVariable { get; set; }  
}

然后在需要共享数据的Form中实现这个接口。其他Form可以通过这个接口来访问数据。

public partial class DataSharingForm : Form, IDataSharable  
{  public int SharedVariable { get; set; }   
}  
``` 然后在另一个Form中这样引用:  
```csharp   
IDataSharable sharable = new DataSharingForm();   
int value = sharable.SharedVariable;   
``` 这种方式使你的代码更清晰、更易于维护,并且符合面向对象的设计原则。

相关文章:

C#: form 窗体的各种操作

说明&#xff1a;记录 C# form 窗体的各种操作 1. C# form 窗体居中显示 // 获取屏幕的宽度和高度 int screenWidth Screen.PrimaryScreen.Bounds.Width; int screenHeight Screen.PrimaryScreen.Bounds.Height;// 设置窗体的位置 this.StartPosition FormStartPosition.M…...

“尔滨”宠粉再升级!百亿像素VR冰雪盛宴

1月10日&#xff0c;由哈尔滨市委网信办、哈尔滨日报社主办&#xff0c;冰城客户端、哈尔滨新闻网承办的“激情迎亚冬&#xff0c;冰雪暖世界——2024年哈尔滨冰雪乐园”VR沉浸式体验产品正式上线。 如果你还没去过最近爆火出圈的“尔滨” ❄️这份哈尔滨冰雪景点VR❄️ 为你…...

redis原理(四)redis命令

目录 一、字符串命令&#xff1a; 二、列表命令&#xff1a; 三、集合命令&#xff1a; 四、散列命令&#xff1a; 五、有序集合命令&#xff1a; 六、redis发布与订阅命令&#xff1a; 七、事务命令 八、其他命令 1、排序&#xff1a;SORT 2、键的过期时间&#xff…...

FairGuard游戏安全2023年度报告

导 读&#xff1a;2023年&#xff0c;游戏行业摆脱了疫情带来诸多负面影响&#xff0c;国内游戏市场收入与用户规模双双实现突破&#xff0c;迎来了历史新高点。但游戏黑灰产规模也在迅速扩大&#xff0c;不少游戏饱受其侵扰&#xff0c;游戏厂商愈发重视游戏安全问题。 为帮助…...

进阶Docker4:网桥模式、主机模式与自定义网络

目录 网络相关 子网掩码 网关 规则 docke网络配置 bridge模式 host模式 创建自定义网络(自定义IP) 网络相关 IP 子网掩码 网关 DNS 端口号 子网掩码 互联网是由许多小型网络构成的&#xff0c;每个网络上都有许多主机&#xff0c;这样便构成了一个有层次的结构。 IP 地…...

Qt 状态机框架:The State Machine Framework (二)

传送门: Qt 状态机框架:The State Machine Framework (一) Qt 状态机框架:The State Machine Framework (二) 1、利用并行态避免态的组合爆炸 假设您想在单个状态机中对汽车的一组互斥属性进行建模。假设我们感兴趣的属性是干净与肮脏,以及移动与不移动。需要四个相互排斥的…...

【Redis】更改redis中的value值

今天继续进步一点点~~ 背景&#xff1a;今天有个前端的同事问我&#xff0c;能不能在Redis中他本人登录公众号的 sessionID 加上一列openID 于是我上网查了一堆在Redis里面的命令&#xff0c;以及不同的客户端怎么输入命令&#xff0c;但是后来问了下同事&#xff0c;他就给我…...

数据结构Java版(2)——栈Stack

一、概念 栈也是一种线性数据结构&#xff0c;最主要的特点是入栈顺序和出栈顺序是相反的&#xff0c;操作时只能从栈顶进行操作&#xff0c;在Java中给我们提供了一个泛型栈——Stack&#xff0c;其中最常用的方法有&#xff1a; void push(E):进栈E pop():退栈E peek():查看…...

tcpdump 用法

tcpdump 是一个用于捕获和分析网络数据包的命令行工具。它可以在网络上截取数据包&#xff0c;并以可读的格式输出&#xff0c;方便进行网络故障排除和协议分析 tcpdump -i interface # 指定网络接口&#xff1a; tcpdump host target_host # 过滤特定主机的流量 tcpdump port…...

JavaScript SEO:如何为搜索引擎优化 JS

什么是 JavaScript SEO&#xff1f; JavaScript SEO 是技术 SEO 的一部分&#xff0c;其重点是使使用 JavaScript 构建的网站更容易被搜索引擎抓取、呈现和索引。 常见任务包括以下内容&#xff1a; 优化通过 JavaScript 注入的内容正确实施懒加载遵循内部链接最佳实践预防、…...

深入探讨生产环境中秒杀接口并发量剧增、负载过高的情况该如何应对?

目录 引言 1. 实施限流措施 1.1 令牌桶算法&#xff1a; 1.2 漏桶算法&#xff1a; 1.3 使用限流框架&#xff1a; 2. 优化数据库操作 2.1. 索引优化 2.2. 批量操作减少交互次数&#xff1a; 2.3. 避免全表扫描&#xff1a; 2.4使用InnoDB引擎&#xff1a; 2.5优化事…...

C语言再学习 -- C语言搭建TCP服务器/客户端

TCP/UDP讲过~ 参看&#xff1a;UNIX再学习 – TCP/UDP 客户机/服务器 这里记录一下可用的TCP服务器和客户端代码。 参看&#xff1a;用C语言搭建TCP服务器/客户端 一、TCP服务器 #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #inc…...

企业远程控制如何保障安全?向日葵“全流程安全远控闭环”解析

远程控制为企业带来的便利与业务上的赋能是显而易见的&#xff0c;但很多企业依然对广泛的使用远程控制持一个观望的态度&#xff0c;其中最主要的原因&#xff0c;就是安全。 由于远程控制的原理和特性&#xff0c;它天然地会成为一个企业信息安全敏感领域&#xff0c;企业在…...

为什么需要放行回源IP

为什么需要放行回源IP 网站以“独享模式”成功接入WAF后&#xff0c;所有网站访问请求将先经过独享引擎配置的ELB然后流转到独享引擎实例进行监控&#xff0c;经独享引擎实例过滤后再返回到源站服务器&#xff0c;流量经独享引擎实例返回源站的过程称为回源。在服务器看来&…...

2023一带一路暨金砖国家技能发展与技术创新大赛“网络安全”赛项省选拔赛样题卷②

2023金砖国家职业技能竞赛"网络安全" 赛项省赛选拔赛样题 2023金砖国家职业技能竞赛 省赛选拔赛样题第一阶段&#xff1a;职业素养与理论技能项目1. 职业素养项目1. 职业素养项目2. 网络安全项目3. 安全运营 第二阶段&#xff1a;安全运营项目1. 操作系统安全配置与加…...

C语言:预处理详解

创作不易&#xff0c;来个三连呗&#xff01; 一、预定义符号 C语⾔设置了⼀些预定义符号&#xff0c;可以直接使⽤&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编…...

一区优化直接写:KOA-CNN-BiLSTM-Attention开普勒优化卷积、长短期记忆网络融合注意力机制的多变量回归预测程序!

适用平台&#xff1a;Matlab 2023版及以上 KOA开普勒优化算法&#xff0c;于2023年5月发表在SCI、中科院1区Top顶级期刊《Knowledge-Based Systems》上。 该算法提出时间很短&#xff0c;目前还没有套用这个算法的文献。 同样的&#xff0c;我们利用该新鲜出炉的算法对我们的…...

高防IP如何有效应对网站DDOS攻击

高防IP如何有效应对网站DDOS攻击&#xff1f;随着互联网的发展&#xff0c;网站安全问题变得越来越重要。DDoS攻击作为一种常见的网络攻击方式&#xff0c;给网站的稳定性和可用性带来了巨大威胁。而高防IP作为一种专业的网络安全解决方案&#xff0c;能够有效地应对DDoS攻击&a…...

1.6 面试经典150题 - 跳跃游戏

跳跃游戏 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 class Solution…...

Apache安全及优化

配置第一台虚拟机 VM1网卡 yum仓库 挂载磁盘 上传3个软件包到/目录 到/目录下进行解压缩 tar xf apr-1.6.2.tar.gz tar xf apr-util-1.6.0.tar.gz tar -xjf httpd-2.4.29.tar.bz2 mv apr-1.6.2 httpd-2.4.29/srclib/apr mv apr-util-1.6…...

Fluent UDF向量运算避坑指南:从NV_DOT点积到NV_CROSS叉积,这些细节错了仿真全白算

Fluent UDF向量运算避坑指南&#xff1a;从NV_DOT点积到NV_CROSS叉积&#xff0c;这些细节错了仿真全白算 深夜的办公室里&#xff0c;咖啡杯已经见底&#xff0c;屏幕上的残差曲线却依然倔强地发散着。你反复检查了网格质量、边界条件、湍流模型&#xff0c;甚至重写了三次UDF…...

cool-admin(midway版)前端权限指令:自定义指令实现权限控制的完整指南

cool-admin(midway版)前端权限指令&#xff1a;自定义指令实现权限控制的完整指南 【免费下载链接】cool-admin-midway &#x1f525; cool-admin(midway版)一个很酷的后台权限管理框架&#xff0c;模块化、插件化、CRUD极速开发&#xff0c;永久开源免费&#xff0c;基于midwa…...

Radiant Player媒体键集成:揭秘硬件控制背后的技术

Radiant Player媒体键集成&#xff1a;揭秘硬件控制背后的技术 【免费下载链接】radiant-player-mac :notes: Turn Google Play Music into a separate, beautiful application that integrates with your Mac. 项目地址: https://gitcode.com/gh_mirrors/ra/radiant-player-…...

网安实验干货每日分享(Weevely配置使用)

网安实验干货每日分享&#xff08;Weevely配置使用&#xff09;-1031 渗透测试环境搭建与工具使用-Weevely配置使用 实验目的 熟悉Webshell管理工具Weevely的配置使用。 实验环境 操作机&#xff1a;Kali2018-TS &#xff08;1&#xff09;操作系统&#xff1a;Kali Linu…...

Linux日志高效搜索:从基础grep到journalctl实战技巧

1. Linux日志搜索&#xff1a;运维工程师的必备技能 每次服务器出现异常&#xff0c;第一反应是什么&#xff1f;没错&#xff0c;就是查日志。作为在Linux系统摸爬滚打多年的老运维&#xff0c;我见过太多新手面对海量日志时的手足无措。其实日志排查就像破案&#xff0c;关键…...

解决Ubuntu中libc6-dev:i386依赖问题的完整指南

1. 理解libc6-dev:i386依赖问题的本质 当你正在愉快地使用Ubuntu系统&#xff0c;突然在执行sudo apt-get upgrade时遇到一堆红色错误提示&#xff0c;特别是看到"libc6-dev:i386 : 依赖: libc6:i386 ( 2.31-0ubuntu9.14) 但无法安装它"这样的报错&#xff0c;是不是…...

Vue2项目实战:v-md-editor从安装到二次封装全流程(附常见问题解决)

Vue2项目深度整合v-md-editor&#xff1a;从核心配置到企业级封装实践 在内容管理系统的开发中&#xff0c;Markdown编辑器已成为技术文档、博客平台和知识库系统的标配组件。v-md-editor作为Vue生态下功能完备的Markdown解决方案&#xff0c;其双栏实时预览、深度定制能力和丰…...

别再纠结FP32了!手把手教你用PyTorch的BF16和FP16加速大模型训练(附完整代码)

突破显存瓶颈&#xff1a;PyTorch混合精度训练实战指南 当你在深夜盯着屏幕上那个"CUDA out of memory"的错误提示时&#xff0c;是否感到一阵无力&#xff1f;大模型训练就像是在走钢丝——一边是宝贵的显存资源&#xff0c;另一边是模型性能的悬崖。作为一名经历过…...

TPAMI 2025 | 港城大团队新作:强化学习引导 ODE 轨迹,提升图像复原性能

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达在计算机视觉领域&#xff0c;图像恢复一直是核心研究方向之一——从模糊的监控画面中还原清晰细节、让水下拍摄的照片重现真实色彩、给低光照的夜景图像提亮增晰&#x…...

Python量化交易系统:专业回测与组合优化

先把最重要的前提说清楚&#xff1a;国内禁止未经许可的程序化自动交易&#xff0c;下面只做量化研究、回测、信号分析&#xff0c;不含实盘自动下单这套是专业完整版量化系统&#xff0c;Python 可直接运行&#xff0c;结构完整、可扩展包含你要的所有高级功能&#xff1a;多股…...