如何添加自定义类型(如Point [])以将数据保存在应用程序设置文件中?

如何在C#的设置文件中保存点数组。

在属性中,文件settings.setting仅具有点,整数,字符串...

Point []不存在。

VS设计器创建为Settings类,并根据设置名称自动生成属性,但不包含任何数组。

lanniulan 回答:如何添加自定义类型(如Point [])以将数据保存在应用程序设置文件中?

您可以创建一个这样的类:

public class Points : List<Point>
{
}

下一步构建项目。

然后,您可以使用Visual Studio向导通过在解决方案资源管理器的项目的Settings.settings部分中双击Properties来添加此参数:

  • 例如添加一个名为PointsSomePoints的新名称。

  • 通过浏览并定义为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();
,

快捷方式

  1. 在设置页面中,添加Point类型的新条目(例如MyPoints)。

enter image description here

  1. 在项目的属性文件夹中,根据需要使用记事本或记事本++找到并打开Settings.settings

enter image description here

  1. 按如下所示更改MyPoints条目的类型:

发件人:

<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>
  1. 保存并关闭文件。

现在,您的新类型(Point [])是设置页面中的其他类型。

enter image description here

代码示例:

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;

祝你好运。

本文链接:https://www.f2er.com/3136013.html

大家都在问