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

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...