リンクボタンにメニューストリップがあります。ラジオボタンとチェックボックスである子アイテムを含むアイテムを追加しました。ユーザーがフォームのラジオ ボタンを選択し、メニューストリップでチェックボックス項目を選択した場合、すべてのプロパティ (前の色、背景の色のフォント サイズ、フォント スタイルなど) を含むチェックボックス コントロールに変換する必要があります。
フォームの実行時にラジオ ボタン コントロールをチェックボックス コントロールに変換する方法を教えてください。
RadioButtonコントロールは、継承階層にないため、チェックボックスコントロールに変換できません。
ただし、それを行う必要がある場合は、その時点で共通のプロパティをコピーするチェックボックスコントロールを作成し、再利用してから、それらの表示を切り替える必要があります。
private CheckBox GetCheckboxFromRadioButton(RadioButton radioButton)
{
CheckBox result = new CheckBox();
//copy text
result.Text = radioButton.Text;
//copy colors
result.BackColor = radioButton.BackColor;
result.ForeColor = radioButton.ForeColor;
//copy checked state
result.Checked = radioButton.Checked;
//copy parent container
result.Parent = radioButton.Parent;
//copy size and location
result.Bounds = radioButton.Bounds;
//copy layout behavior
result.Dock = radioButton.Dock;
result.Anchor = radioButton.Anchor;
//enabled property
result.enabled = radioButton.Enabled;
// copy other properies you need here
//...
return result;
}
独自の関数を作成できます
CheckBox ConvertControl(RadioButton rb)
必要なすべてのプロパティの初期化でチェックボックスの作成を実装します。コントロールは異なるため、自動的に変換できない特定のプロパティがいくつかあります。明示的に初期化する方法を指定する必要があります。