我有一个包含RGB值的字符串,例如“ 224,224,224”。 我正在尝试使用该值设置表单的背景颜色,但是它出错了,我不确定为什么。
我正在尝试...
If Not this_dialog_backcolor = "" Then _
new_dialog.BackColor = Color.FromArgb(this_dialog_backcolor)
我得到了例外
控件不支持透明背景色。
我试图将字符串修改为包含第4个值,因此它变成了“ 255,224,224,224”,并且也出现了错误,这是因为算术运算导致重载。
我还尝试过将字符串格式化为:
Color [A=255, R=33, G=33, B=33]
这次,我得到异常'从字符串'Color [A = 255,R = 33,G = 33,B = 33]转换为整数”是无效的。
任何需要帮助的人。
答案 0 :(得分:1)
FromArgb是一种不接受字符串作为参数的方法。因此,此处会发生自动转换,您不能确定该转换是否可以完成您需要做的事情。
如果您有Option Strict On,则该错误将在编译时捕获。
您可以用不同的方法来解决问题,例如,您可以将字符串分成多个子部分,然后使用正确的颜色值调用FromArgb
Dim s As String = "224,224,224"
if Not string.IsNullOrEmpty(s) Then
Dim p = s.Split(","c).Select(Function(x) int32.Parse(x.Trim()))
form1.BackColor = Color.FromArgb(p(0),p(1),p(2))
End If
答案 1 :(得分:1)
您可以使用命名空间public ActionResult FileSave(FileSaveRequest request)
{
}
public class FileSaveRequest{
public List<FilesUploadModel> Models { get;set; }
}
中的ColorConverter
。
System.Drawing
它还可以转换以网页颜色名称(如Dim converter = New ColorConverter()
Dim color = DirectCast(converter.ConvertFromString("255,224,224"), Color)
和十六进制格式(如"PaleVioletRed"
)指定的颜色。
答案 2 :(得分:0)
所以我设法实现了我想要的目标,但是我不确定它的效率...感觉有点脏...
fs.writeFileSync
就像我说的那样,它可以工作,但是我敢肯定必须有一种更清洁的方法。 有人吗?