たとえば、Form1 コンストラクターで次のように入力できるようにしたい: Options_DB であり、true の場合は有効になり、クラス Options_DB 内のすべてのことを行います。
これはクラス Options_DB です。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DannyGeneral;
using System.IO;
using System.Windows.Forms;
namespace GatherLinks
{
static class OptionsDB
{
static string changeWebsite;
static bool downloadImages;
static bool localOnly;
static decimal num1;
static string num1_numricupdown;
static string path_exe;
static string path_settings;
static string settings_file;
static string settings_dir;
static OptionsFile setting_file;
static OptionsDB()
{
path_exe = Path.GetDirectoryName(Application.LocalUserAppDataPath);
path_settings = Path.GetDirectoryName(Application.LocalUserAppDataPath);
settings_file = "\\settings.txt";
settings_dir = path_settings + @"\settings";
setting_file = new OptionsFile(settings_dir + settings_file);
// ---- L O A D I N G A L L K E Y S ---- \\
changeWebsite = setting_file.GetKey("changeWebSite");
}
// ---- FUNCTIONS GET AND SET ---- \\
public static string get_changedWebSite()
{
return changeWebsite;
}
public static void set_changeWebSite(string website)
{
changeWebsite = website;
setting_file.SetKey("changeWebSite", changeWebsite);
}
}
}
そして、たとえば次のように Form1 で使用しています。
Form1 コンストラクターで:
mainUrl = OptionsDB.get_changedWebSite();
そして、button2 クリック イベントで:
private void button2_Click(object sender, EventArgs e)
{
cl = new ChangeLink();
cl.StartPosition = FormStartPosition.CenterParent;
DialogResult dr = cl.ShowDialog(this);
if (dr == DialogResult.Cancel)
{
cl.Close();
}
else if (dr == DialogResult.OK)
{
label4.Text = cl.getText();
mainUrl = cl.getText();
OptionsDB.set_changeWebSite(cl.getText());
cl.Close();
}
}
Options_DB.get を実行する前に、Form1 コンストラクターで... Options_DB のプロパティ、またはクラスを新しいクラスにするかどうかを教えてくれる何かを追加したいと思います。このクラスは、チェックボックスなどのすべてのオプションをテキストファイルに保存するためにすでに多くの時間を費やしているため、プログラムを実行すると、変更した設定が記憶されます。
ここで、行った変更を保存するか保存しないかをプログラムに伝えるプロパティが必要です。