Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Нужно реализовать checkbox как в Win 10 Tweaker в настройках программы [Решено]

Page 1 of 2Next

Доброго времени суток! Возникло желание реализовать checkbox как в Win 10 Tweaker, в настройках программы к примеру: Автоматически проверять обновления, хочется повторить исполнение данного checkbox, при включённом включателе применяется твик в реестре, при выключенном твик восстанавливается в системное значение. Нужен пример не могу понять:( Хочется увидеть в исполнении класса то есть он обращается в form1 - checkbox и из класса выполняет внутренний твик Result и Reserve

Добрый день.
Если речь об этом

то это вообще не Checkbox, а PictureBox, который меняет изображение по клику по нему.

Цитата: Adler от 10.09.2020, 20:51

Добрый день.
Если речь об этом

то это вообще не Checkbox, а PictureBox, который меняет изображение по клику по нему.

Добрый день. Хочется повторить исполнение данного checkbox, при включённом включателе применяется твик в реестре, при выключенном твик восстанавливается в системное значение. Нужен пример не могу понять:( Хочется увидеть в исполнении класса то есть он обращается в form1 - checkbox и из класса выполняет внутренний твик Result и Reserve.

Цитата: Adler от 10.09.2020, 20:51

Добрый день.
Если речь об этом

то это вообще не Checkbox, а PictureBox, который меняет изображение по клику по нему.

Добрый вечер.
void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced").SetValue("Start_TrackProgs", 0);
}
else if (checkBox1.Checked == false)
{
Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced").SetValue("Start_TrackProgs", 1);
}
}
Как можно улучшить код, сократить и т.д. Хотелось бы ответ Хачатура.

Добрый 🖐
На будущее, не очень приветствуется призыв Хачатура.
Держи:

Спойлер

void checkBox1_CheckedChanged(object sender, EventArgs e)
       {
           using (RegistryKey key = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"))
                       key?.SetValue("Start_TrackProgs", checkBox1.Checked ? 0 : 1);
       }

 

Огромное спасибо!
Можно узнать как реализован код переключателя, так же фотографии двух видов переключателей. В интернете ищу люди либо через код делают либо через фото

Посмотри вот это видео. И посмотри как работает PictureBox. А быстрое переключение без if-else Я написал тернарно.

Насчёт PictureBox разобрался, но в коде щас в затруднение как сделать всё тоже самое как тема с CheckBox то есть чтобы он после инициализации чекер понял если ли этот параметр в реестре, ну я думаю донёс мысль, то есть тот же функционал как с CheckBox только весь функционал реализовать в PictureBox
Инициализация:
using RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced");
checkBox1.Checked = key?.GetValue("Start_TrackProgs")?.ToString() == "0";
Метод:
using RegistryKey key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced");
key?.SetValue("Start_TrackProgs", checkBox1.Checked ? 0 : 1);
Только вот бы это всё реализовать в виде PictureBox

Посмотри вот это видео В нём Хачатур рассказывал, как работать с реестром и читать оттуда параметры. Касательно вот [simple_tooltip content='checkBox1.Checked = key?.GetValue("Start_TrackProgs")?.ToString() == "0";']этой[/simple_tooltip] строки, тут уже ошибка, потому что у свойств тип принимаемых данных Boolean, то есть True/False, посмотри в Конструкторе. Изучи видео Хачатура по C# там всё грамотно рассказано.

Вопрос возник, у меня к примеру есть класс в нём значение для реестра методы под названиями Result - Reserve. Я хочу чтобы Result добавлял в реестр а Reserve восстанавливал системное значение, нужно сделать это всё в одном чекбоксе

Page 1 of 2Next