我正在处理我的应用程序的自定义设置。我创建了一个类,它将所有设置保存为属性网格中显示的公共属性。使用自定义函数对数据库进行set / get写入和读取。这一切都很适合我的需求。我在显示颜色方面遇到麻烦,就像我认为它们应该在属性网格中显示一样。即使已知颜色,属性网格也仅使用RGB值。
有没有办法让属性网格显示已知颜色而不是RGB值?
这是我的设置类中的属性。
<CategoryAttribute("Signature Capture"), _
DescriptionAttribute("Sets the Pen color"), _
DisplayName("PenColor"), _
BrowsableAttribute(True), _
ReadOnlyAttribute(False), _
DefaultValueAttribute(GetType(Color), "Black"), _
RefreshProperties(RefreshProperties.All)> _
Public Property SignatureCapturePenColor() As Color
Get
Dim myset As New mySettings
Return Color.FromArgb(Convert.ToInt32(myset.GetSetting("SignatureCapturePenColor", mySettings.e_Scope.Tech)))
End Get
Set(ByVal value As Color)
Dim myset As New mySettings
myset.SetSetting("SignatureCapturePenColor", value.ToArgb, mySettings.e_Scope.Tech)
Dim ncSet As New ncSettings
ncSet.NotifyPropertyChanged()
End Set
End Property
这是属性网格的示例:
这应该显示为“黑色”而不是“0,0,0”。
这甚至可能吗?
如果需要,我可以发布更多代码或解释更多代码。这是我的第一个问题,所以请放轻松我...
答案 0 :(得分:1)
您正在使用ARGB值来存储和返回颜色,以便&#34;认为&#34;您正在尝试定义自定义颜色。
使用并保存颜色名称..
Public Property SignatureCapturePenColor() As Color
Get
Dim myset As New mySettings
Return Color.FromName(myset.GetSetting("SignatureCapturePenColorName", mySettings.e_Scope.Tech))
End Get
Set(ByVal value As Color)
Dim myset As New mySettings
myset.SetSetting("SignatureCapturePenColorName", value.Name, mySettings.e_Scope.Tech)
Dim ncSet As New ncSettings
ncSet.NotifyPropertyChanged()
End Set
End Property