投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/3/9 20:08:16
> この時、tagValue As Object の値が Nothing であるため、
> Enum Language への DirectCast が失敗している、という状況です。

Dim tagValue As Object = Nothing
Return DirectCast(tagValue, Language)  'InvalidCastException 



LanguageSelector.vb のデザイン画面を見てみると、
初期状態で Checked = True な RadioButton がありませんので、
Value プロパティの getter の下記の処理が失敗します。
Dim tagValue = (From rb In Me.GroupBox1.Controls.OfType(Of RadioButton)
                Where rb.Checked Select rb.Tag).FirstOrDefault
Return DirectCast(tagValue, Language)


常に何かが選択された状態にしておきたいのであれば、
事前に rbEnglish の Checked を True にしておくのが良いでしょう。

あるいはどれも選択されていない、という状態を表したいのであれば、
Language.None を返すようにしておくとか。
(その場合は、SelectChanged メソッドも改修が必要ですね)

Return (From rb In GroupBox1.Controls.OfType(Of RadioButton)()
          Where rb.Checked Select DirectCast(rb.Tag, Language)
          ).DefaultIfEmpty(Language.None).SingleOrDefault()