当前位置: 首页 > 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…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...