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 窗体的各种操作
说明:记录 C# form 窗体的各种操作 1. C# form 窗体居中显示 // 获取屏幕的宽度和高度 int screenWidth Screen.PrimaryScreen.Bounds.Width; int screenHeight Screen.PrimaryScreen.Bounds.Height;// 设置窗体的位置 this.StartPosition FormStartPosition.M…...
“尔滨”宠粉再升级!百亿像素VR冰雪盛宴
1月10日,由哈尔滨市委网信办、哈尔滨日报社主办,冰城客户端、哈尔滨新闻网承办的“激情迎亚冬,冰雪暖世界——2024年哈尔滨冰雪乐园”VR沉浸式体验产品正式上线。 如果你还没去过最近爆火出圈的“尔滨” ❄️这份哈尔滨冰雪景点VR❄️ 为你…...
redis原理(四)redis命令
目录 一、字符串命令: 二、列表命令: 三、集合命令: 四、散列命令: 五、有序集合命令: 六、redis发布与订阅命令: 七、事务命令 八、其他命令 1、排序:SORT 2、键的过期时间ÿ…...
FairGuard游戏安全2023年度报告
导 读:2023年,游戏行业摆脱了疫情带来诸多负面影响,国内游戏市场收入与用户规模双双实现突破,迎来了历史新高点。但游戏黑灰产规模也在迅速扩大,不少游戏饱受其侵扰,游戏厂商愈发重视游戏安全问题。 为帮助…...
进阶Docker4:网桥模式、主机模式与自定义网络
目录 网络相关 子网掩码 网关 规则 docke网络配置 bridge模式 host模式 创建自定义网络(自定义IP) 网络相关 IP 子网掩码 网关 DNS 端口号 子网掩码 互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。 IP 地…...
Qt 状态机框架:The State Machine Framework (二)
传送门: Qt 状态机框架:The State Machine Framework (一) Qt 状态机框架:The State Machine Framework (二) 1、利用并行态避免态的组合爆炸 假设您想在单个状态机中对汽车的一组互斥属性进行建模。假设我们感兴趣的属性是干净与肮脏,以及移动与不移动。需要四个相互排斥的…...
【Redis】更改redis中的value值
今天继续进步一点点~~ 背景:今天有个前端的同事问我,能不能在Redis中他本人登录公众号的 sessionID 加上一列openID 于是我上网查了一堆在Redis里面的命令,以及不同的客户端怎么输入命令,但是后来问了下同事,他就给我…...
数据结构Java版(2)——栈Stack
一、概念 栈也是一种线性数据结构,最主要的特点是入栈顺序和出栈顺序是相反的,操作时只能从栈顶进行操作,在Java中给我们提供了一个泛型栈——Stack,其中最常用的方法有: void push(E):进栈E pop():退栈E peek():查看…...
tcpdump 用法
tcpdump 是一个用于捕获和分析网络数据包的命令行工具。它可以在网络上截取数据包,并以可读的格式输出,方便进行网络故障排除和协议分析 tcpdump -i interface # 指定网络接口: tcpdump host target_host # 过滤特定主机的流量 tcpdump port…...
JavaScript SEO:如何为搜索引擎优化 JS
什么是 JavaScript SEO? JavaScript SEO 是技术 SEO 的一部分,其重点是使使用 JavaScript 构建的网站更容易被搜索引擎抓取、呈现和索引。 常见任务包括以下内容: 优化通过 JavaScript 注入的内容正确实施懒加载遵循内部链接最佳实践预防、…...
深入探讨生产环境中秒杀接口并发量剧增、负载过高的情况该如何应对?
目录 引言 1. 实施限流措施 1.1 令牌桶算法: 1.2 漏桶算法: 1.3 使用限流框架: 2. 优化数据库操作 2.1. 索引优化 2.2. 批量操作减少交互次数: 2.3. 避免全表扫描: 2.4使用InnoDB引擎: 2.5优化事…...
C语言再学习 -- C语言搭建TCP服务器/客户端
TCP/UDP讲过~ 参看:UNIX再学习 – TCP/UDP 客户机/服务器 这里记录一下可用的TCP服务器和客户端代码。 参看:用C语言搭建TCP服务器/客户端 一、TCP服务器 #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #inc…...
企业远程控制如何保障安全?向日葵“全流程安全远控闭环”解析
远程控制为企业带来的便利与业务上的赋能是显而易见的,但很多企业依然对广泛的使用远程控制持一个观望的态度,其中最主要的原因,就是安全。 由于远程控制的原理和特性,它天然地会成为一个企业信息安全敏感领域,企业在…...
为什么需要放行回源IP
为什么需要放行回源IP 网站以“独享模式”成功接入WAF后,所有网站访问请求将先经过独享引擎配置的ELB然后流转到独享引擎实例进行监控,经独享引擎实例过滤后再返回到源站服务器,流量经独享引擎实例返回源站的过程称为回源。在服务器看来&…...
2023一带一路暨金砖国家技能发展与技术创新大赛“网络安全”赛项省选拔赛样题卷②
2023金砖国家职业技能竞赛"网络安全" 赛项省赛选拔赛样题 2023金砖国家职业技能竞赛 省赛选拔赛样题第一阶段:职业素养与理论技能项目1. 职业素养项目1. 职业素养项目2. 网络安全项目3. 安全运营 第二阶段:安全运营项目1. 操作系统安全配置与加…...
C语言:预处理详解
创作不易,来个三连呗! 一、预定义符号 C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编…...
一区优化直接写:KOA-CNN-BiLSTM-Attention开普勒优化卷积、长短期记忆网络融合注意力机制的多变量回归预测程序!
适用平台:Matlab 2023版及以上 KOA开普勒优化算法,于2023年5月发表在SCI、中科院1区Top顶级期刊《Knowledge-Based Systems》上。 该算法提出时间很短,目前还没有套用这个算法的文献。 同样的,我们利用该新鲜出炉的算法对我们的…...
高防IP如何有效应对网站DDOS攻击
高防IP如何有效应对网站DDOS攻击?随着互联网的发展,网站安全问题变得越来越重要。DDoS攻击作为一种常见的网络攻击方式,给网站的稳定性和可用性带来了巨大威胁。而高防IP作为一种专业的网络安全解决方案,能够有效地应对DDoS攻击&a…...
1.6 面试经典150题 - 跳跃游戏
跳跃游戏 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 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…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
