【问题标题】:C# Win Forms Save ControlsC# Winforms 保存控件
【发布时间】:2011-11-15 11:24:44
【问题描述】:

我制作了一个 Win Form 并有一些控件,如复选框、单选按钮等。我希望发生的是用户将选择一些设置,例如勾选框以在启动时启动程序,然后他们可以退出,当他们再次打开它时,我如何确保他们所做的选择被保存?谢谢。

【问题讨论】:

标签: c# winforms


【解决方案1】:

http://msdn.microsoft.com/en-us/library/aa730869%28v=vs.80%29.aspx 这是和文章如何在 C# 应用程序中使用设置。

你可以在哪里检查,如果 CheckBox 是用布尔值等检查的。

【讨论】:

    【解决方案2】:

    有几种方法,但我建议使用 .NET 用户设置方法将他们的设置保存在应用程序的属性部分,并在他们再次启动应用程序时重新加载和设置。

    这是一个例子:

    保存设置

    Properties.Settings.Default.CheckboxChecked = true;
    Properties.Settings.Default.Save();
    

    加载设置

    checkBox.Checked = Properties.Settings.Default.CheckboxChecked;
    

    不过,我建议给它们起更有意义的名字。

    您可以在此处阅读更多信息,例如:MSDN Using Application Settings and User Settings

    这也是一个关于如何从头到尾实现用户设置的好教程:C# - Saving User Settings - Easy way!

    【讨论】:

    • 感谢您的信息,看起来不错,但是当我到达 Properties.Settings.Default 时。我真的没有很多选择,我如何在默认值之后获得 CheckboxChecked 布尔值?谢谢。
    • 如果您查看教程(第二个链接),它会解释如何通过 Visual Studio 添加属性。然后您就可以像示例一样引用它们
    【解决方案3】:

    也许你正在寻找这样的东西:

    添加这个:

    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    

    然后这个程序:

        for_save info = new for_save();
        string general_path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
        string path = general_path + "\\MyApplication";
        BinaryFormatter serializer = new BinaryFormatter();
    
        info.check = true;
        info.radio = false;            
    
        //write
        Directory.CreateDirectory(path);
        Stream write_stream = File.Create(path + "\\MyFile.txt");
        serializer.Serialize(write_stream, info);
        write_stream.Close();
    
        //read
        Stream read_stream = File.OpenRead(path + "\\MyFile.txt");
        for_save read_info = (for_save) serializer.Deserialize(read_stream);
        read_stream.Close();
    
        textBox1.Text = read_info.check.ToString() + read_info.radio.ToString();
    

    还有这个类:

    [Serializable()]
    class for_save
    {
        public bool check;
        public bool radio;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多