2012-10-26 117 views
0

當我嘗試爲textBox的屬性BackColor設置值時出現此錯誤
我所擁有的是一個formBuilder。
所以用我的formBuilder Runninng我可以創建一個表單添加一個TabControl,並在tabControl一個groupBox。在GroubBox裏面我有一些文本框。
對於每個TextBox,我將它們的屬性(包含值)保存在xml中。
當我試圖重新從XML形式(在另一個項目),我使用該代碼:異常已被調用的目標拋出 - 對於屬性BackColor

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 

所以對一些文本框我有作爲字符串值:顏色[白色]
和轉換後,我有一個顏色:「{名稱=顏色[白色],ARGB =(0,0,0,0)}」
當我試圖將此顏色值設置爲屬性BackColor我得到異常:
異常已被調用的目標引發。
和的InnerException: 控制不支持透明背景顏色

任何想法解決這個問題?

回答

0

我找到了解決方案。 在我的代碼的問題實際上是該函數:

Color.FromName(val as String) 

爲expected.I不工作應該作爲VAL只有名稱(例如白色),但我有「顏色[白]」

所以我只是清理我的字符串之前使用該功能結束一切都很好。

0

aRGB(255,255,255,255)是白色,第一個是alpha通道 - 0是透明的。 Winforms控件的內部異常是正確的。 WPF沒有這個問題。

相關問題