请问winform动态生成的控件如何保存位置等信息?

问题描述

就是关闭之后,下次打开,动态生成的控件还能在原来的位置,而不是重置,如果直接设置的控件我可以写入到xml当中,下次读取,但是动态生成呢,比如说点击一个button然后可以生成另外一个可以拖动的button,在运行界面我拖动新生成button到某个位置,关闭之后再次打开,我希望新生成的button还在,谢谢各位!

解决方案

本帖最后由 haixilk 于 2014-07-11 10:42:36 编辑
解决方案二:
最简单的用this.Hide()this.Show()
解决方案三:
关闭的时候保存一下位置是否值得一试?
解决方案四:
读xml会读,写不会写?关闭时写到xml里,下次打开读出来你愿意写到文本或二进制文件里也行
解决方案五:
引用2楼qyj2009的回复:

关闭的时候保存一下位置是否值得一试?

动态生成的新的控件我拖动以后的位置我怎么去保存呢,还有就是动态生成的控件数量在编写代码的时候我也不知道,这个每个控件都要保存位置怎么去实现呢?主要就是这个很疑惑阿
解决方案六:
引用3楼Z65443344的回复:

读xml会读,写不会写?关闭时写到xml里,下次打开读出来你愿意写到文本或二进制文件里也行

写也会的,但是窗体运行的时候,点击新比如说button按钮新生成的控件,我想保存这个新生成的控件,不知道怎么去读写。。
解决方案七:
引用4楼haixilk的回复:

Quote: 引用2楼qyj2009的回复:
关闭的时候保存一下位置是否值得一试?

动态生成的新的控件我拖动以后的位置我怎么去保存呢,还有就是动态生成的控件数量在编写代码的时候我也不知道,这个每个控件都要保存位置怎么去实现呢?主要就是这个很疑惑阿

动态生成的,你显示的时候就知道坐标了啊,否则你显示到哪里?可以建立个LIST存放这些动态生成的控件,等关闭时循环LIST写入文件如果用户删除了控件,则从LIST里REMOVE掉写XML,新建节点会不会?实在不行,就写文本文件,每个控件一行,标识出控件类型,名称和坐标.如果有内容,可以连文本一起写进去
解决方案八:
引用4楼haixilk的回复:

Quote: 引用2楼qyj2009的回复:
关闭的时候保存一下位置是否值得一试?

动态生成的新的控件我拖动以后的位置我怎么去保存呢,还有就是动态生成的控件数量在编写代码的时候我也不知道,这个每个控件都要保存位置怎么去实现呢?主要就是这个很疑惑阿

在保存的时候,循环所有动态生成的控件,取它的Name值作为标示,对它的Position信息进行保存,保存到Xml文件。读取的时候,读取Xml文件,根据Name值的数量来创建新的控件,当然再次动态生成的控件需要一个标示来和xml文件中的控件有所区分。
解决方案九:
如果确定是写文本,你LIST里直接放字符串,控件类型(比如button),名称(比如btn1),坐标(x,y)每个参数之间加逗号分隔,读的时候stream.readline().split(',')变成string[]数组,然后swich控件类型
解决方案十:
十分感谢楼上几位热心的高手!我去试试看

时间: 2024-09-27 14:17:44

请问winform动态生成的控件如何保存位置等信息?的相关文章

软件-vb.net 动态生成的控件,事件也动态加,怎么做呢?

问题描述 vb.net 动态生成的控件,事件也动态加,怎么做呢? 我现在做一个软件,想把下面一排的快捷按钮也做成动态生成的,也就是让用户自己选择(已存入数据库),动态按钮的事件要使用上面菜单的单击事件,如何写这样的动态事件呢?addhandler xx addressof xxx 我会使用,但是我在主界面加载的时候快捷按钮是用户自定义设置的,每次可以读出来用户设置了哪个菜单作为快捷按钮,就是无法使用菜单的事件,求大家帮帮忙. 绑定事件我会 AddHandler Button1.Click Add

winform-C# Winform 动态Add用户控件,比设置用户控件Visible的效率高还是低?

问题描述 C# Winform 动态Add用户控件,比设置用户控件Visible的效率高还是低? 如何题:C# Winform 动态Add用户控件,比设置用户控件Visible的效率高还是低? 解决方案 肯定相关代码要比设置是否可见复杂,但是动态添加相对灵活性要高,而不用有用没用的都摆在那 解决方案二: C#的Winform中使用用户控件C# WinForm中添加用户控件 解决方案三: 1.动态Add用户控件,是窗体加载后,重新绘制加载用户控件,有可能出现界面闪烁刷新效果: 2.设置用户控件Vi

怎样在panel上一个具体的位置动态生成一个控件?

问题描述 怎样才能在panel(System.web.ui.webcontrols.panel)上一个具体的位置动态生成一个控件(比如一个Button)? 解决方案 解决方案二:你可以试验试验这样strings="<inputtype="button"value="btn"/>"panelId.InnerHtml=s;等我试验下看行不.解决方案三:不行,不过我发现可以这样.Buttonbtn=newButton();btn.ID=&q

动态生成textbox控件,根据内容添写入excel

问题描述 我想动态生成textbox控件组,获取用户在动态生成的textbox控件中添写的内容,写入excel.现在一个是不知道动态生成的控件组在用户输入后的text值如何获得.我试过用textchanged,keypress事件绑定生成的动态控件,好像不行. 解决方案 解决方案二:ding解决方案三:PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMe.LoadDimmytext(6

C# Winform 动态Add用户控件,比设置用户控件Visible的效率高还是低?

问题描述 如何题:C#Winform动态Add用户控件,比设置用户控件Visible的效率高还是低?个人分析:1.动态Add用户控件,是窗体加载后,重新绘制加载用户控件,有可能出现界面闪烁刷新效果:2.设置用户控件Visible,是窗口加载时,所有用户控件自动绘制,不存在界面闪烁,但是第一次加载窗口有可能比较慢,主要看机器显卡配置不知,以上分析是否有误,请各位一起探讨一下... 解决方案 解决方案二:设置visible为false基本不消耗显卡解决方案三:引用1楼liaoyibiao1987的回

同一页面根据xml内容动态生成extjs控件

问题描述 在同一个页面上根据xml文件内容动态在同一页面生成extjs不同控件信息比如:<table></table>就生成extjs的grid

如何调用动态生成的控件的事件、方法等?

问题描述 界面上有Button1和Button2控件,Button1_Click事件如下:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimtextbox1AsTextBox=NewTextBox()textbox1.Top=10textbox1.Left=20Me.Controls.Add(textbox1)textbox1.text="aaaa&

在.net中(C#),怎么实现动态生成textbox控件(点‘增加’按钮可增加,点‘checkbox’再点‘删除’按钮可删除所选的textbox)

问题描述 如何实现,也不单单是textbox,也可能点增加按纽后,自动列出一段空白的个人信息,点5下按钮,出来5个空白的个人信息,如何实现,类似那种动态无刷新的效果,求助! 解决方案 解决方案二:在界面动态增加控件,在代码中New出控件,然后添加到界面中就可以了.如果不仅仅是TextBox,而是一个复杂的组合,那么就先自己做一个控件.解决方案三:一段JS代码就搞定,差不多是你想要的效果:<headrunat="server"><title>无标题页</ti

Panel中动态生成的控件怎么获取到?

问题描述 我在后台的panel中动态生成几个控件,然后在按钮点击方法中获取怎么获取不到啊?<asp:PanelID="mypanel"runat="server"></asp:Panel><asp:Buttonrunat="server"ID="mybutton"Text="mybutton"OnClick="mybutton_Click"/> pro