textBoxのプロパティBackColorのsetValueを実行しようとすると、このエラーが発生します
。私が持っているのはformBuilderです。
したがって、formBuilder Runninngを使用して、TabControlを追加し、tabControlにgroupBoxを追加するフォームを作成できます。GroubBoxの中にはいくつかのtextBoxがあります。
テキストボックスごとに、それらのプロパティ(値を含む)をxmlに保存します。
(別のプロジェクトで)xmlからフォームを再作成しようとしているとき、私はそのコードを使用します:
For Each cntProperty As XElement In elem.Elements
Dim propertyName As String = cntProperty.Name.ToString
Dim targetProperty As PropertyInfo = parentControl.GetType().GetProperty(propertyName)
If targetProperty IsNot Nothing Then
Dim propType As Type = FindType(targetProperty.PropertyType.ToString)
Dim convertedVal = ConvertValue(cntProperty.Value, targetProperty.PropertyType)
parentControl.GetType().GetProperty(propertyName).SetValue(parentControl, convertedVal, Nothing)'Here I get the exception
End If
Next
parentControlは、再作成しようとしているコントロールです(この場合はtextBox)。FindTypeは、プロパティのタイプを返す関数です(正常に機能します)。ConvertValueは、文字列をxmlから適切なタイプに変換する関数です。使用する色についてこの関数:
Color.FromName(val)'val is the string value from the xml
したがって、一部のテキストボックスでは、文字列値としてColor [White]
があり、変換後の色は "{Name = Color [White]、ARGB =(0、0、0、0)}"
であり、この色の値をプロパティBackColorに設定すると、例外が発生
します。呼び出しのターゲットによって例外がスローされました。
およびinnerException:
コントロールは透明な背景色をサポートしていません
この問題を解決するアイデアはありますか?