如何在C#的设置文件中保存点数组。
在属性中,文件settings.setting
仅具有点,整数,字符串...
Point []不存在。
VS设计器创建为Settings类,并根据设置名称自动生成属性,但不包含任何数组。
如何在C#的设置文件中保存点数组。
在属性中,文件settings.setting
仅具有点,整数,字符串...
Point []不存在。
VS设计器创建为Settings类,并根据设置名称自动生成属性,但不包含任何数组。
您可以创建一个这样的类:
public class Points : List<Point>
{
}
下一步构建项目。
然后,您可以使用Visual Studio向导通过在解决方案资源管理器的项目的Settings.settings
部分中双击Properties
来添加此参数:
例如添加一个名为Points
或SomePoints
的新名称。
通过浏览并定义为TheClassNamespace.Points
选择自定义类型。
您完成了。
您需要先初始化实例,然后才能使用它。
例如:
private void ButtonCreatePoints_Click(object sender,EventArgs e)
{
if ( Properties.Settings.Default.Points == null )
Properties.Settings.Default.Points = new Points();
Properties.Settings.Default.Points.Add(new Point(10,10));
Properties.Settings.Default.Points.Add(new Point(20,20));
Properties.Settings.Default.Save();
}
private void ButtonViewPoints_Click(object sender,EventArgs e)
{
string str = "";
foreach ( var point in Properties.Settings.Default.Points )
str += $"{point.X},{point.Y}" + Environment.NewLine;
MessageBox.Show(str.TrimEnd(Environment.NewLine.ToCharArray()));
}
在第一次运行时,如果我们单击CreatePoints和ViewPoints,它将显示已创建的点。
如果我们关闭应用程序并再次运行它,则单击ViewPoints会显示已保存的相同点。
您可以在程序启动时在Main或主窗体构造函数或load事件中放置要创建的空检查...,但在使用此参数之前先执行此操作。
如果需要将此参数用作数组,则可以编写:
Properties.Settings.Default.Points.ToArray();
,
快捷方式
Point
类型的新条目(例如MyPoints)。Settings.settings
:发件人:
<Setting Name="MyPoints" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0,0</Value>
</Setting>
收件人:
<Setting Name="MyPoints" Type="System.Drawing.Point[]" Scope="User">
<Value Profile="(Default)" />
</Setting>
现在,您的新类型(Point [])是设置页面中的其他类型。
代码示例:
var points = new [] { new Point(1,1),new Point(2,2),new Point(3,3) };
//Set
Properties.Settings.Default.MyPoints = points;
//Get
points = Properties.Settings.Default.MyPoints;
祝你好运。