Сохранить состояние CheckBox - PullRequest
2 голосов
/ 23 января 2012

Мне нужно знать, возможно ли сохранить состояние CheckBox в C #? Я имею в виду, что если я проверю CheckBox и закрою программу, то после перезапуска программы CheckBox останется проверенным. Возможно ли это?

Ответы [ 6 ]

3 голосов
/ 23 января 2012

Это довольно общий вопрос.Вам нужно как-то сериализовать состояние самостоятельно, но как и где это зависит от многих вещей.

Возможно, для простого запуска посмотрите файл настроек .

1 голос
/ 23 января 2012

Самый простой способ сделать это - использовать конфигурационный XML-файл. Вы можете очень легко добавить это в Visual Studio, нет необходимости использовать реестр, и его можно использовать, если приложение переносимо, так как настройки сохраняются вместе с программой. Учебник о том, как это настроить, находится здесь:

http://www.sorrowman.org/c-sharp-programmer/save-user-settings.html

1 голос
/ 23 января 2012

Для этого вам нужно будет самостоятельно записать состояние CheckBox.Например, вы можете сохранить значение в XML-документе, который будет содержать состояния пользовательского интерфейса вашего приложения.Например, в очень упрощенной форме вы можете сделать следующее:

// ... as the application is closing ...
// Store the state of the check box
System.IO.File.WriteAllText(@"C:\AppFile.txt", this.CheckBox1.IsChecked.ToString());

// ...

// ... as the application is being initialized ...
// Read the state of the check box
string value = System.IO.File.ReadAllText(@"C:\AppFile.txt");
this.CheckBox1.IsChecked = bool.Parse(value);

Как видите, это просто сохраняет значение в файле и считывает его обратно во время инициализации,Это не лучший способ сделать это, но он демонстрирует возможный процесс для подражания.

0 голосов
/ 23 января 2012

Если вы хотите сохранить это в Реестре, вы можете сделать что-то вроде этого

RegistryKey Regkey = "HKEY_CURRENT_USER\\Software\\MyApplication";
RegKey.SetValue("Checkbox", Checkbox.Checked);

но лично я бы сохранил его в файл .Config

Вот пример того, как сделать это с помощью файла конфигурации, если вы хотите

private static string getConfigFilePath()
{
    return Assembly.GetExecutingAssembly().Location + ".config";
}
private static XmlDocument loadConfigDocument()
{
    XmlDocument docx = null;
    try
    {
        docx = new XmlDocument();
        docx.Load(getConfigFilePath());
        return docx;
    }
    catch (System.IO.FileNotFoundException e)
    {
        throw new Exception("No configuration file found.", e);
    }
}
private void rem_CheckedChanged(object sender, EventArgs e)
{
    if (rem.Checked == true)
    {
        rem.CheckState = CheckState.Checked;
        System.Xml.XmlDocument docx = new System.Xml.XmlDocument();
        docx = loadConfigDocument();
        System.Xml.XmlNode node;
        node = docx.SelectSingleNode("//appsettings");
        try
        {
            string key = "rem.checked";
            string value = "true";
            XmlElement elem = (XmlElement)node.SelectSingleNode(string.Format("//add[@key='{0}']", key));
            if (elem != null)
            {
                elem.SetAttribute("value", value);
            }
            else
            {
               elem = docx.CreateElement("add");
                elem.SetAttribute("key", key);
                elem.SetAttribute("value", value);
                node.AppendChild(elem);
            }
            docx.Save(getConfigFilePath());
        }
        catch (Exception e2)
        {
            MessageBox.Show(e2.Message);
        }
    }   
}           
0 голосов
/ 23 января 2012

В C # вы можете использовать файл настроек. Информацию о том, как его использовать, можно найти здесь: http://msdn.microsoft.com/en-us/library/aa730869%28v=vs.80%29.aspx

0 голосов
/ 23 января 2012

Если вы используете cookie-файлы веб-приложения и храните информацию в cookie-файлах, это возможно.

Вы можете оформить заказ http://www.daniweb.com/web-development/aspnet/threads/30505

http://asp.net -tutorials.com / состояние / печенье /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...