当前位置: 首页 > 编程语言 > C#

如何在Windows窗体中保存运行时创建的控件分享

时间:2023-04-10 18:45:36 C#

如何在Windows窗体中保存运行时创建的控件这是我的代码privatevoidmake_Book(intx,inty,stringname){#regionCreatingBook//这段代码正在初始化book(button)Buttonbook1=newButton();图片img=button1.Image;book1.Image=img;book1.Name=姓名;book1.Height=img.Height;book1.Width=img.Width;book1.Location=newPoint(44+x,19+y);book1.Click+=newEventHandler(myClickHandler);groupBox1.Controls.Add(book1);#endregion}每次单击按钮时,这段代码都会生成一个按钮,现在我想保存创建的按钮及其属性,以便每次应用程序启动时都可以显示它们。在C#visualstudio2010中编码...一种解决方案可能是使用StringCollection用户设置(编辑:在您的评论中,您说应用程序关闭时它不会持续存在。这是不正确的,因为这是使用用户设置……的全部内容)。在每一行中,您需要将控件的位置和名称保存为字符串,例如120;140;MyName当用户添加新按钮时,在StringCollection中创建一个项目,如下所示:privatevoidmake_BookButtonAndStore(intx,inty,字符串名称){make_Book(x,y,name);Properties.Settings.Default.ButtonStringCollection.Add(String.Format("{0};{1};{2}",book1.Location.X,book1.Location.Y,book1.Name));Properties.Settings.Default.Save();}privatevoidmake_Book(intx,inty,stringname){//这段代码正在初始化book(button)Buttonbook1=newButton();图片img=button1.Image;book1.Image=img;book1.Name=姓名;book1.Height=img.Height;book1.Width=img.Width;book1.Location=newPoint(44+x,19+y);book1.Click+=newEventHandler(myClickHandler);groupBox1.Controls.Add(book1);然后您需要通过读取每一行、提取位置和名称并再次调用make_book按钮的代码(不是我的新make_BookButtonAndStore方法,因为它使按钮加倍)来为每个项目创建StringCollection。请注意,您可能需要在添加第一个按钮之前使用new关键字创建StringCollection。编辑要解释如何创建这样的设置:转到项目属性,转到设置选项卡。创建一个名为ButtonStringCollection的新设置,选择类型System.Collections.Specialized.StringCollection和范围User。在表单的构造函数中,添加以下行:if(Properties.Settings.Default.ButtonStringCollection==null)Properties.Settings.Default.ButtonStringCollection=newStringCollection();然后,添加我上面提供的代码来创建按钮。此外,在窗体的Load事件处理程序中,添加以下内容:foreach(Properties.Settings.Default.ButtonStringCollection中的字符串行){if(!String.IsNullOrWhitespace(line)){//该行的格式为x;y;名称string[]parts=line.Split(';');if(parts.Length>=3){intx=Convert.ToInt32(parts[0]);inty=Convert.ToInt32(零件[1]);make_Book(x,y,parts[2]);}}}调用make_Book方法时,可以将输入的参数保存到当前应用使用的数据库或其他存储中。当应用程序启动时,您可以通过调用make_Book方法加载所有按钮,并将值保存在应用程序存储中。这是一个如何保存加载xml的示例。以上就是C#学习教程:如何在WindowsForms中保存运行时创建的控件共享的所有内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——publicstaticvoidSave(stringx,stringy,stringname){if(!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+"\appName")){Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+"\appName");}XmlDocumentxmlDocument=newXmlDocument();字符串xml=string.Format(@"{0}{1}{2}",x,y,名称);xmlDocument.LoadXml(xml);xmlDocument.Save(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+"\appName\button.xml");}publicstaticDictionaryLoad(){字符串地址="";如果(!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+"\appName\button.xml")){返回新字典(){{"x",""},{"y","“},{“姓名”,””}};}XmlDocumentxmlDocument=newXmlDocument();xmlDocument.Load(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+"\appName\button.xml");XmlNode按钮=xmlDocument.GetElementsByTagName("按钮").Item(0);XmlNodenameNode=button.SelectSingleNode("name");XmlNodexNode=button.SelectSingleNode("x");XmlNodeyNode=button.SelectSingleNode("y");returnnewDictionary(){{"name",nameNode.InnerText},{"x",xNode.InnerText},{"y",yNode.InnerText}};}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: