我创建了一个C#Windows窗体应用程序,其中包含标签(除其他外,但它们与问题无关)。我希望能够保存某些标签的 .Text 属性。我理解如何设置表单关闭和表单加载事件,但我不知道从哪里开始保存??
如果有人想给我看一个代码段,标签名为: lblJoeMoney , lblBobMoney , lblAlMoney
我可以获得更多信息的任何提示或链接都会很棒。
旁注: 我知道我没有明确提出问题,所以这里是:如何在C#Windows窗体应用程序中保存某些数据
答案 0 :(得分:1)
有多种保存数据的选项。根据您的需要以及您需要保存的数据类型,每个选项都是好的或坏的。我将介绍几个选项。
选项1 - 数据库
到目前为止,数据库是保存数据最受欢迎的选择。在数据库中,您可以创建表。表组织,分组和定义要保存的数据类型。例如,对于简单的地址簿,您可能有一个包含Name,Address,City,State和Zip的表。
数据库可能很复杂,但可以简化检索数据的任务。例如,您可能只想从纽约州检索名称。如果您需要存储大量数据并需要以多种不同方式查询数据,则将数据存储在数据库中非常有意义。
数据库服务器的一些最常用选择包括Microsoft Sql Server,Oracle和MySql。这些称为客户端/服务器数据库。数据库服务器通常位于Internet上某处的远程计算机上,并且您的程序(客户端)连接到它。还有一些不需要服务器的文件系统数据库。例如SQLite和SQL Server Express。这些只是在您的计算机上创建一个文件,所有数据都存储在该单个文件中。
对于Internet和Web应用程序,通常可以使用客户端/服务器数据库。对于桌面应用程序,例如WPF和WinForms应用程序,通常您需要一个文件系统数据库,以便可以使用您的应用程序轻松分发它,而无需持续的Internet连接。
选项2 - Xml文件
XML文件有点像数据库(但是,在内部,它不像数据库那样工作),因为它用于以列和行的格式存储数据。 XML文件以人类可读的格式存储数据,可以在记事本中打开。 XML文件将数据存储在标记中。以下是该地址簿在XML文件中的外观示例:
<?xml version="1.0" encoding="UTF-8"?>
<Names>
<Name>
<FirstName>Joe</FirstName>
<LastName>Smith</LastName>
<Address>123 Main Street</Address>
<City>Poughkeepsie</City>
<State>NY</State>
</Name>
<Name>
<FirstName>Mike</FirstName>
<LastName>Jones</LastName>
<Address>982 Baker Street</Address>
<City>Fargo</City>
<State>ND</State>
</Name>
</Names>
Xml文件很容易在C#中创建。在大多数情况下,您只需创建XmlSerializer class的实例并调用Serialize方法或将您的类实例转换为XML并调用Deserialize方法将XML转换回实例你的班级缺点是XML非常冗长,如果要存储大量数据,XML文件将变得很大,并且序列化和反序列化数据将变得很慢。此外,搜索数据可能会变得很慢。
对于您的应用程序,这可能是要走的路。您可以找到有关如何执行此操作的分步说明here。
选项3 - 注册表
注册表通常用于存储程序设置,不建议用于存储数据。由于它是一个可行的存储选项,我只想在这里简单提一下。用它来存储设置而不是数据!
答案 1 :(得分:0)
听起来您希望保存下次运行程序时要使用的文本。请参阅:https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings(v=vs.110).aspx
示例将内容保存在配置文件App Settings。
中答案 2 :(得分:0)
据我所知,简单的解决方案是序列化将信息保存到xml文件中所需的一切。
当程序关闭时,在Form_Closing事件部分中,将所有信息保存到xml文件中
然后,在下次运行时,在Form_Load部分中,您将从该xml文件加载所有信息。