【IJCAD】ダイアログの前回値を保存を行う方法
ダイアログの前回値はレジストリに書き込める!
ダイアログの値を保持する方法についてはいろいろ考えられますが、IJCAD の .NET API を使用して IJCAD のレジストリに前回値を保存することができます。
UserConfigurationManager
クラスの OpenDialogSection
メソッドを使用することで、レジストリ内の IJCAD で表示される、各ダイアログのセクションを扱う IConfigurationSection
オブジェクトを取得できます。
あとは、 IConfigurationSection
インターフェースの、WriteProperty
メソッドで前回値をレジストリに書き込むことができて、ReadProperty
メソッドでレジストリに書き込まれている前回値の読み込みができます。
サンプルコード
// ウィンドウフォームがロードされたとき private void SampleForm_Load(object sender, EventArgs e) { // UserConfigurationManagerオブジェクトを取得 var ucm = GrxCAD.ApplicationServices.Application.UserConfigurationManager; // レジストリのセクションを取得 var section = ucm.OpenDialogSection(this); if (section != null) { // テキストボックスの内容をレジストリから読み込む textBox1.Text = System.Convert.ToString(section.ReadProperty(textBox1.Name, "")); // チェックボックスの内容をレジストリから読み込む checkBox1.Checked = System.Convert.ToBoolean(section.ReadProperty(checkBox1.Name, false)); checkBox2.Checked = System.Convert.ToBoolean(section.ReadProperty(checkBox2.Name, false)); checkBox3.Checked = System.Convert.ToBoolean(section.ReadProperty(checkBox3.Name, false)); // ラジオボタンの内容をレジストリから読み込む radioButton1.Checked = System.Convert.ToBoolean(section.ReadProperty(radioButton1.Name, true)); radioButton2.Checked = System.Convert.ToBoolean(section.ReadProperty(radioButton2.Name, false)); } }
// ウィンドウフォームが閉じられるとき private void SampleForm_FormClosing(object sender, FormClosingEventArgs e) { // UserConfigurationManagerオブジェクトを取得 var ucm = GrxCAD.ApplicationServices.Application.UserConfigurationManager; // レジストリのセクションを取得 var section = ucm.OpenDialogSection(this); if (section != null) { // テキストボックスの内容をレジストリに書き込む section.WriteProperty(textBox1.Name, $"{textBox1.Text}"); // チェックボックスの内容をレジストリに書き込む section.WriteProperty(checkBox1.Name, $"{checkBox1.Checked}"); section.WriteProperty(checkBox2.Name, $"{checkBox2.Checked}"); section.WriteProperty(checkBox3.Name, $"{checkBox3.Checked}"); // ラジオボタンの内容をレジストリに書き込む section.WriteProperty(radioButton1.Name, $"{radioButton1.Checked}"); section.WriteProperty(radioButton2.Name, $"{radioButton2.Checked}"); } }
実行結果
サンプルコードではダイアログのロード時に、レジストリから値を取得して各コントロールに設定し、ダイアログを閉じる時にレジストリへ値を書き込んでいます。
書き込んだ値は下記のレジストキーに追加されます。
HKEY_CURRENT_USER\Software\IntelliJapan\IJCAD Professional\R19\ja-jp\Profiles{プロファイル名}\Dialogs{ダイアログのクラス名}