ユーザーが自分の設定を選択できるようにするために、「設定」フォームがあるアプリケーションがあります。フォームには、ユーザーが好みを選択できるラジオ ボタンがいくつかあります。別のフォームには、チェックされているボタンに応じて異なる反応を示すコードがあります。
コード/設定インターフェイスは次のとおりです。
private void DateStamp()
{
if (UserPreferences.Instance.ddmmyyyy.Checked)
{
int CaretPosition = richTextBoxPrintCtrl1.SelectionStart;
string TextBefore = richTextBoxPrintCtrl1.Text.Substring(0, CaretPosition);
string textAfter = richTextBoxPrintCtrl1.Text.Substring(CaretPosition);
string currentDate = DateTime.Now.ToString("dd-MM-yyyy");
richTextBoxPrintCtrl1.SelectedText = currentDate;
}
else if (UserPreferences.Instance.mmddyyyy.Checked)
{
int CaretPosition = richTextBoxPrintCtrl1.SelectionStart;
string TextBefore = richTextBoxPrintCtrl1.Text.Substring(0, CaretPosition);
string textAfter = richTextBoxPrintCtrl1.Text.Substring(CaretPosition);
string currentDate = DateTime.Now.ToString("MM-dd-yyyy");
richTextBoxPrintCtrl1.SelectedText = currentDate;
}
else if (UserPreferences.Instance.yyyyddmm.Checked)
{
int CaretPosition = richTextBoxPrintCtrl1.SelectionStart;
string TextBefore = richTextBoxPrintCtrl1.Text.Substring(0, CaretPosition);
string textAfter = richTextBoxPrintCtrl1.Text.Substring(CaretPosition);
string currentDate = DateTime.Now.ToString("yyyy-dd-MM");
richTextBoxPrintCtrl1.SelectedText = currentDate;
}
else if (UserPreferences.Instance.yyyymmdd.Checked)
{
int CaretPosition = richTextBoxPrintCtrl1.SelectionStart;
string TextBefore = richTextBoxPrintCtrl1.Text.Substring(0, CaretPosition);
string textAfter = richTextBoxPrintCtrl1.Text.Substring(CaretPosition);
string currentDate = DateTime.Now.ToString("yyyy-MM-dd");
richTextBoxPrintCtrl1.SelectedText = currentDate;
}
ラジオ ボタンの後ろにコードはありません。修飾子はパブリックです。
私が抱えている問題は、「日付スタンプ」を追加しようとすると、「if (UserPreferences.Instance.ddmmyyyy .チェック済み)". 私は今何をすべきかわからない。
ユーザーが日付スタンプを追加しようとすると、ラジオ ボタンのチェック状態を確認し、チェックしたラジオ ボタンに対応する日付スタンプを追加する必要があります。
よろしくお願いします。
- -編集 - -
「プリファレンス」フォームで、「保存」ボタンの背後にあるコードは次のようになりました。
private void button1_Click(object sender, EventArgs e)
{
if (ddmmyyyy.Checked)
DataFormat = ddmmyyyy.Text;
else if (mmddyyyy.Checked)
DataFormat = mmddyyyy.Text;
else if (yyyyddmm.Checked)
DataFormat = yyyyddmm.Text;
else if (yyyymmdd.Checked)
DataFormat = yyyymmdd.Text;
//--------------------------------------------------
if (qwerty.Checked)
KeyboardFormat = qwerty.Text;
else if (qwertz.Checked)
KeyboardFormat = qwertz.Text;
else if (azerty.Checked)
KeyboardFormat = azerty.Text;
else if (dvorak.Checked)
KeyboardFormat = dvorak.Text;
this.Close();
}
そして、メイン フォームの文字列:
public partial class Basic_Word_Processor : Form
{
public string keyboardFormat;
public string dataFormat;
MainForm の「ShowDialog」コード:
private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
{
UserPreferences pref = new UserPreferences();
pref.ShowDialog();
dataFormat = pref.DataFormat;
keyboardFormat = pref.KeyboardFormat;
}
問題は、ボタンの「チェック済み」ステータスが保存されないことです。ダイアログが閉じられるとすぐに、以前の状態に戻ります。