c#中form窗体第二次打开时保持第一次打开时的位置和数据信息

问题描述

各位大侠,我现在创建了一个Form窗体,但是我在重复运行的时候窗体的位置总是不唯一,而且窗体的数据都是初始化的数值,我现在想要实现两个功能:1、窗体每次打开的时候都在固定位置,不会变来变去的;2、窗体每次打开的时候都保存上次编辑的值,而不是初始化的值。我有搜过相关文档,很多人推荐用注册表,但是我不懂注册表哎,我觉得http://www.csharpwin.com/csharpspace/4727r1017.shtml这个代码能解决我第一个问题只是我不太懂代码的意思。。。。。比如“publicstaticstringRegPath=@"SoftwareApp";”这个代码说是在HKEY_CURRENT_USER设置注册表的路径,可是HKEY_CURRENT_USER在哪个文件夹中呢??而且用他推荐的最后一个办法时我找不到变量ManagedWindowPlacement,是不是他给出的命名空间也不全呢。。。。真的是无从下手啊~~~第二个问题要用到数据存储,求大侠给菜鸟推荐比较好用又不深奥的数据存储方式~~

解决方案

解决方案二:
1.简单的设置一下窗口居中显示就完了,这样就不会随机跑到某个位置显示2.把信息存txt是最简单的了
解决方案三:
固定窗体位置的办法1.设置居中显示2.设置最大化显示3.在load里设置location属性你甚至可以在关闭时(closing事件里)将当前的位置和大小保存到文件,打开时读取文件并设置location和size
解决方案四:
引用2楼Z65443344的回复:

固定窗体位置的办法1.设置居中显示2.设置最大化显示3.在load里设置location属性你甚至可以在关闭时(closing事件里)将当前的位置和大小保存到文件,打开时读取文件并设置location和size

+1
解决方案五:
窗体每次在中间显示this.StartPosition=FormStartPosition.CenterScreen;不会注册表,写配置文件保存到指定位置也是可以的。如果要每次打开在以前位置,那就在窗体关闭前将窗体位置写到配置文件里面。一下参考://申明INI文件的写操作函数WritePrivateProfileString()[DllImport("kernel32",CharSet=CharSet.Auto,EntryPoint="WritePrivateProfileString")]privatestaticexternlongSaveINI(stringsection,stringkey,stringval,stringfilePath);publicstaticvoidWriteINI(stringAppName,stringKeyName,stringKeyValue,stringFileName){//写Ini文件SaveINI(AppName,KeyName,KeyValue,FileName);}publicstaticboolWriteHardWareList(){try{CreateMyDirectory(@"c:CommHDConfig");WriteINI("硬件配置","产品端口号",HardwareList.ProdutCOMPortNum.ToString(),HWPath);WriteINI("硬件配置","设备类型",HardwareList.DeviceType.ToString(),HWPath);
解决方案六:
引用2楼Z65443344的回复:

固定窗体位置的办法1.设置居中显示2.设置最大化显示3.在load里设置location属性你甚至可以在关闭时(closing事件里)将当前的位置和大小保存到文件,打开时读取文件并设置location和size

顶你也可以写进数据库……
解决方案七:
虽然主要是讲如何ping局域网ip和获取计算机名,mac地址的但是也做了读写文件和设置窗体位置,字体大小的功能,可以参考下
解决方案八:
感谢楼上各位亲的回复,目前使用居中的办法很好~~~对于窗体保持最新一次更新数值的操作,由于我的窗体是嵌套的,第一个窗体打开后点击一个按钮打开第二个窗体,再点击第二个窗体上的按钮打开第三个窗体,这样的话我用txt保存数据再在窗体打开的时候导入么???
解决方案:
做好规则记录,按规则提取初始时机在窗体New而未显示之前均可。
解决方案:
引用7楼u013115003的回复:

感谢楼上各位亲的回复,目前使用居中的办法很好~~~对于窗体保持最新一次更新数值的操作,由于我的窗体是嵌套的,第一个窗体打开后点击一个按钮打开第二个窗体,再点击第二个窗体上的按钮打开第三个窗体,这样的话我用txt保存数据再在窗体打开的时候导入么???

你完全可以将不同窗体的数据记录到不同的文件,而不是把什么乱七八糟的东西都放一起这样每个窗体关闭的时候写文件,打开的时候读文件,就完了.

时间: 2024-09-20 08:46:35

c#中form窗体第二次打开时保持第一次打开时的位置和数据信息的相关文章

c-VC/C++怎样让打开着的txt文件 实时刷新 写入的数据信息

问题描述 VC/C++怎样让打开着的txt文件 实时刷新 写入的数据信息 怎样让打开着的txt文件 实时刷新 写入的数据信息,用c/VC/C++实现 解决方案 你用ReadDirectoryChange() API 获取文件改变事件,然后这个时候重新读取文件内容,然后刷新显示. nodepad++类似处理. 解决方案二: 如果你坚持使用文本文件,这个没办法实时,只能是不断打开文件,查询有没有新的数据,然后添加. 解决方案三: 你说的的打开着的是个什么意思呢,如果是被系统记事本打开着,估计不能实现

JQuery中form验证出错信息的查看方法_jquery

JQuery中form验证出错,可以采用以下方式来查看具体input的出错信息 复制代码 代码如下: If(!$('form').valid()) { $($('form').validate().errorList).each(function (index, item) { Console.log($($(item).attr('element)).attr('name') + ' ' + $($(item).attr('element)).attr('message')); }); }

将窗体最小化到状态栏,每次点击打开窗的菜单窗体都会重新打开,我想实现当第二次打开窗体时只要激活第一次打开的窗体

问题描述 我用一下代码将窗体最小化到状态栏,但是我现在每点一次打开窗口的菜单,程序就又重新打开一次原先的窗体,我想实现当第二次打开窗体时只要激活第一次打开的窗体,应该如何实现?//先建一个FormBase的基类,子窗体都从这个基类继承publicclassFormBase:System.Windows.Forms.Form{publicdelegatevoidFormMinSize(objectsender,EventArgse);publiceventFormMinSizeOnFormMinS

access 如何编程打开其他数据库中的窗体?

access|编程|数据|数据库 如何编程打开其他数据库中的窗体?    简述:如何编程打开其他数据库中的窗体?    问题: 如何编程打开其他数据库中的窗体,使用完毕后退回?我新建了一个数据库,里面只有一个Form,我想在Form上添加几个按钮,每个按钮上对应一个Click事件,事件的动作就是打相应的Access数据库,并执行该数据库中的Menu表单,关闭数据库后又回到有按钮的Form来.   回答: Function OpenOhterMDB()    Dim objApp As New A

access编程打开其他数据库中的窗体

简述:如何编程打开其他数据库中的窗体? 问题: 如何编程打开其他数据库中的窗体,使用完毕后退回? 我新建了一个数据库,里面只有一个Form,我想在Form上添加几个按钮,每个按钮上对应一个Click事件,事件的动作就是打相应的Access数据库,并执行该数据库中的Menu表单,关闭数据库后又回到有按钮的Form来. 回答: function openohtermdb() dim objapp as new access.application objapp.opencurrentdatabase

两个独立的winform程序中,如何传递form窗体界面?

问题描述 就是在客户端Winform程序中的一个form窗体,需要在Server端Winform程序中完整的展现出来,目前想到了两种方式:第一种方式:将客户端程序中的form窗体做截图,直接传递到B程序.这样做传输量太大,再者有滚动条的界面展示不出来,不好用:第二种方式:将客户端程序Form窗体中的所有控件属性(大小,位置,值等等)当作参数,传递到Server端程序,在Server端程序中重新构建界面:这样需要传递的各种元素太多,比较麻烦.请教各位高手,还有没有其他比较好的方法么? 解决方案 解

单击树节点在父窗体中打开了几个子窗体,如何做到我选中节点后打开对应的子窗体???

问题描述 单击树节点在父窗体中打开了几个子窗体,如何做到我选中节点后打开对应的子窗体???-节点0---A---B---C选中节点A,弹出FORM1选中节点B,弹出FORM2选中节点C,弹出FORM3我的代码如下,但是只能打开同一下窗体,如何实现点击不同节点后显示相应的窗体呢privatevoidtrwFuncFrame_AfterSelect_1(objectsender,TreeViewEventArgse){System.Stringstr=trwFuncFrame.SelectedNod

C# Winfrom项目中,如何制作截图中的form窗体以及lable字体的样式

问题描述 C# Winfrom项目中,如何制作截图中的form窗体以及lable字体的样式 在C# Winfrom项目中,如何将form窗体设置背景色.前景色.透明度以及将Lable控件中的文字如何设置大小.颜色.字体. 可以达到或接近下面截图中的效果. 个人在制作的过程中发现与截图中的效果有点差异,没有达到或接近截图中的效果.请各位帮忙大致的说明下整个过程或提供相关的参考资料,谢谢. 附截图: 解决方案 基本方法就是自己绘制,或用第三方的库,如果人家是一张图片,你想仿照,基本没戏,因为其中涉及

java中form表单提交时Action传入不同的对象

问题描述 java中form表单提交时Action传入不同的对象 如题 在我点保存的时候进入action时传参(参数是实体类),参数有可能是不同的实体类, 解决方案 使用hashmap,hashmap的key是属性,value是属性值.在服务器端通过反射给属性赋值/取值/遍历属性. 解决方案二: 可以通过jquery $(""#id"").attr(""action""xxxxx"")然后再$("