记录窗体关闭位置(从窗体上次关闭的位置启动窗体)

news2024/12/26 11:18:47

从上次关闭位置启动窗体

基础类

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;

namespace WindowsFormsApp1
{
    public class Reg
    {
        public  static void Set(string name, object value,string item = "Software\\MySoft_ttd")
        {
            RegistryKey myReg1, myReg2;//声明注册表对象
            myReg1 = Registry.CurrentUser;//获取当前用户注册表项
            myReg2 = myReg1.CreateSubKey(item);//在注册表项中创建子项
            myReg2.SetValue(name, value);//将窗体关闭位置的x坐标写入注册表
        }
        public static object Get(string name, string item = "Software\\MySoft_ttd")
        {
            RegistryKey myReg1, myReg2;//声明注册表对象
            myReg1 = Registry.CurrentUser;//获取当前用户注册表项
            try
            {
                myReg2 = myReg1.CreateSubKey(item);//在注册表项中创建子项
                return myReg2.GetValue(name);
            }
            catch (Exception ex)
            {
                return "0";
            }
        }


    }
}

调用方法


        private void Form1_Load(object sender, EventArgs e)
        {
            //this.Location = new Point(Convert.ToInt32(Reg.Get("my_x")), Convert.ToInt32(Reg.Get("my_y")));
            //https://blog.csdn.net/u014453443/article/details/90040423
            //if (this.Location.X >= Screen.PrimaryScreen.Bounds.Width || this.Location.Y >= Screen.PrimaryScreen.Bounds.Height)
            //{
            //    this.Location = new Point(0, 0);
            //}
            this.Left = Convert.ToInt32(Reg.Get("my_x"));
            this.Top = Convert.ToInt32(Reg.Get("my_y"));
            if (this.Left >= Screen.PrimaryScreen.Bounds.Width || this.Top >= Screen.PrimaryScreen.Bounds.Height)
            {
                this.Left =0;
                this.Top = 0;   
            }
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            //Reg.Set("my_x", this.Location.X.ToString());
            //Reg.Set("my_y", this.Location.Y.ToString());
            Reg.Set("my_x", this.Left.ToString());
            Reg.Set("my_y", this.Top.ToString());
        }

详细可以参考

 C#开发实例大全  基础卷

159例程

注册表内记录的信息

特此记录

anlog

2023年9月9日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/994255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV 12(图像直方图)

一、图像直方图 直方图可以让你了解总体的图像像素强度分布,其X轴为像素值(一般范围为0~255),在Y轴上为图像中具有该像素值像素数。 - 横坐标: 图像中各个像素点的灰度级. - 纵坐标: 具有该灰度级的像素个数. 画出上图的直方图: …

算法刷题记录-其他类型(LeetCode)

57 57. Insert Interval 思路 模拟 用指针去扫 intervals,最多可能有三个阶段: 不重叠的绿区间,在蓝区间的左边有重叠的绿区间不重叠的绿区间,在蓝区间的右边 逐个分析 不重叠,需满足:绿区间的右端&…

第 2 章 线性表 ( 双链循环线性表(链式存储结构)实现)

1. 背景说明 2. 示例代码 1) status.h /* DataStructure 预定义常量和类型头文件 */#ifndef STATUS_H #define STATUS_H#define CHECK_NULL(pointer) if (!(pointer)) { \printf("FuncName: %-15s Line: %-5d ErrorCode: %-3d\n", __func__, __LINE__, ERR_NULL_PTR…

2023 年最新Java 毕业设计选题题目参考,500道 Java 毕业设计题目,值得收藏

大家好,我是程序员徐师兄,最近有很多同学咨询,说毕业设计了,不知道选怎么题目好,有哪些是想需要注意的。 确实毕设选题实际上对很多同学来说一个大坑, 每年挖坑给自己跳的人太多太多,选题选得好…

JavaScript关于对象的小挑战

让我们再来看看马克和约翰比较他们的体重指数的情况吧! 这一次,让我们用物体来实现计算! 记住:BMI质量/身高**2质量/(身高*高度)。(质量以公斤为单位,身高以米为单位) 为他们每个人创建一个对象,其属性为全…

MySQL触发器使用指南大全

一、介绍 触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。 使用别名OLD和NEW来引…

【操作系统实验】进程管理与内存分配模拟程序-含可运行有界面的Python代码

本文是博主之前做的操作系统实验,现在将完整代码和效果图免费放在下面,供大家参考,如果觉得有用,希望大家可以三连关注支持!!!!!! 实验目的 设计编写OS进程…

15. 线性代数 - 克拉默法则

文章目录 克拉默法则矩阵运算Hi,大家好。我是茶桁。 上节课我们在最后提到了一个概念「克拉默法则」,本节课,我们就来看看到底什么是克拉默法则。 克拉默法则 之前的课程我们一直在强调,矩阵是线性方程组抽象的来的。那么既然我们抽象出来了,有没有一种比较好的办法高效…

合宙Air724UG LuatOS-Air LVGL API控件-二维码(Qrcode)

二维码(Qrcode) 示例代码 qrcodelvgl.qrcode_create(lvgl.scr_act(),nil)lvgl.qrcode_set_txt(qrcode,"https://doc.openluat.com/home")lvgl.obj_set_size(qrcode,400,400)lvgl.obj_align(qrcode, nil, lvgl.ALIGN_CENTER, 0, 0)创建 可以通…

496. 下一个更大元素 I

class Solution { public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {// 存储numx2右侧第一个比它的元素数值std::unordered_map<int, int> index;std::stack<int> sta;for (int i nums2.size()-1; i &…

uniapp项目实践总结(十四)封装存储和路由方法

导语&#xff1a;在日常 APP 开发过程中&#xff0c;经常要用到数据的存储、获取和删除等操作以及页面导航之间的跳转&#xff0c;为此&#xff0c;封装了一个两个简单的方法来统一调用。 目录 原理分析方法实现实战演练案例展示 原理分析 主要是以下 API。 uni.setStorage…

xcode iOS 在app文件中开启访问 Document Directory

xcode iOS 在app文件中开启访问 Document Directory 在 Plist 中设置 LSSupportsOpeningDocumentsInPlace为 YES 且UIFileSharingEnabled为 YES &#xff08;这个不添加好像也可以&#xff09; 可以从系统的Files应用中访问应用的 Documents 目录 电脑 助手也可以访问 开…

视频号挂公众号链接最新教程方法,赶紧来看

玩视频号的朋友&#xff0c;尤其是靠挂公众号引流的朋友&#xff0c;肯定心里非常清楚&#xff0c;就在八月初&#xff0c;视频号放大招了&#xff0c;可以说这个大招是完全把公众号的路给堵死了&#xff0c;视频号出了什么新规呢&#xff0c;大家来看看。 第一个规则是&#…

无涯教程-JavaScript - IMTAN函数

描述 IMTAN函数以x yi或x yj文本格式返回复数的切线。复数的切线由以下公式计算- tan(z)正弦(z)/cos(z) 语法 IMTAN (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you want the tangent.Required Notes Excel中的复数仅存储为文本。…

最新keil安装出现的无数问题记录及解决办法

报错问题现象如下&#xff1a; *** Target Target 1 uses ARM-Compiler Default Compiler Version 5 which is not available. 安装最新keil 5 出现无数个问题。 我使用GD32去跑&#xff0c;或者STM32去跑&#xff0c;都是这个问题。 一、我先解决了GD32的问题&#xff1a;…

阻塞队列学习总结

ArrayBlockingQueue&#xff1a;一个由数组结构组成的有界阻塞队列。 LinkedBlockingQueue&#xff1a;一个由链表结构组成的有界阻塞队列。 PriorityBlockingQueue&#xff1a;一个支持优先级排序的无界阻塞队列。 DelayQueue&#xff1a;一个使用优先级队列实现的延迟无界…

分库分表实战

数据分片与分片算法 分库分表的第一性原理&#xff0c;那就是&#xff1a;存储容量和性能容量。只有对核心业务表才会精心进行分库分表的设计。 首先我们了解一下数据分片是什么意思&#xff1f; 本质上的分库分表不就是数据分片吗&#xff1f;定义就是&#xff1a;按照某个…

BBR 带宽估计的延后累加

一个关于时延统计分布的小测试&#xff0c;用 netem delay jitter distribution pareto 模拟&#xff0c;得到下面的结果&#xff1a; netem 的 jitter 并不是真 jitter&#xff0c;只是通过延时阻滞部分报文模拟 jitter&#xff0c;对保序流而言&#xff0c;就表现为乱序&am…

搭建自己的OCR服务,第一步:选择合适的开源OCR项目

一、OCR是什么&#xff1f; 光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;是指对文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的过程。 亦即将图像中的文字进行识别&#xff0c;并以文本的形式返回。 二、OCR的基本流程 1…

Science子刊 | 将CAR-T细胞疗法与造血干细胞移植相结合 或许 能治疗所有血液癌症...

来源&#xff1a;BRUNO DELESSARD/CHALLENGES-REA/REDUX 新的CAR-T细胞疗法有望能治疗几乎所有血液癌症。目前&#xff0c;该疗法已被批准用于五种亚型的血液癌症。宾夕法尼亚大学帕尔曼医学院的科学家们在预临床试验中展示了这种方法的潜在效能。 2023年8月31日&#xff0c;发…