Benar, jadi saya ingin menambahkan fitur simpan pengaturan ke program saya. Saya akan menjalani semua langkah dari seluruh proses penyimpanan/pemuatan yang telah saya siapkan saat ini. Jadi logisnya, simpan semua pengaturan tergantung pada bool saveStateToggle
saat keluar dari program:
private void exitBtn_Click(object sender, EventArgs e)
{
if(saveStateToggle == false)
{
Application.Exit();
}
else
{
saveSettings();
Application.Exit();
}
}
saveSettings hanyalah ini:
private void saveSettings()
{
Properties.Settings.Default.onTopToggle = onTopToggle;
Properties.Settings.Default.saveStateToggle = saveStateToggle;
Properties.Settings.Default.debugToggle = debugToggle;
Properties.Settings.Default.min = minTrackbar.Value;
Properties.Settings.Default.max = maxTrackbar.Value;
Properties.Settings.Default.Save();
}
Kemudian, saat program diluncurkan, di private void Form1_Load
bergantung pada pengaturan yang disimpan sebelumnya:
private void Form1_Load(object sender, EventArgs e)
{
if(Properties.Settings.Default.saveStateToggle == true)
{
loadSettings();
}
else
{
loadDefaultSettings();
}
}
loadSettings();
sama dengan saveSettings();
tetapi dicerminkan. Jadi jika saveSettings();
adalah Properties.Settings.Default.saveStateToggle = saveStateToggle;
, loadSettings()
akan menjadi seperti ini: saveStateToggle = Properties.Settings.Default.saveStateToggle;
Setelah debugging lebih lanjut, saya menemukan bahwa saveStateToggle
memang false
sebelum Application.Exit();
, tetapi secara misterius berubah menjadi true
bahkan sebelum saya memanggil loadSettings();
di private void Form1_Load
ketika saya memulai program lagi.
Saya benar-benar bingung. Saya sudah memeriksa semuanya dan bagi saya, semuanya tampak logis. Mungkinkah saveStateToggle
menjadi kenyataan karena saya dalam konfigurasi Debug saat menjalankan program? Apakah mungkin untuk memiliki tombol yang dapat diubah untuk mengaktifkan penyimpanan?
Tombol yang mengubah saveStateToggle
benar atau salah:
private void SaveStateToggleBtn_Click(object sender, EventArgs e)
{
if (saveStateToggle == false)
{
saveStateToggle = true;
SaveStateToggleBtn.Text = "SAVESTATE: ON";
}
else
{
saveStateToggle = false;
SaveStateToggleBtn.Text = "SAVESTATE: OFF";
}
}
Boolean didefinisikan di sini:
bool saveStateToggle = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
bool saveStateToggle = true;
definisi properti tidak ditampilkan sehingga sulit memberikan jawaban. - person Alexei Levenkov   schedule 20.11.2020saveToggleState
yang seharusnya salah. - person Frappy   schedule 20.11.2020public Form1(){InitializeComponent();}
yang berada di atas Form1_Load - person Frappy   schedule 20.11.2020saveToggleState
(seharusnya tidak terlalu banyak)? Apakah mungkin ada serangkaian peristiwa yang secara tidak sengaja memicu peristiwa klik tombol untuk tombol SaveState, misalnya selama Form_Load?saveToggleState
tidak bisa menjadi kenyataan secara misterius; sesuatu akan mengaturnya menjadi seperti itu. - person Sean Skelly   schedule 20.11.2020Application.Exit();
menunjukkan kepada saya bahwa itu memangfalse
. Namun terkadang ada baiknya untuk berpikir dari sudut pandang pengguna dan bukan melakukan rekayasa berlebihan. Saya menyadari bahwa hampir tidak ada orang yang akan menggunakannya. - person Frappy   schedule 20.11.2020setValues();
yang memperbarui semua tombol dan apa yang tidak sesuai dengan boolean. - person Frappy   schedule 22.11.2020