首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Visual Basic中将字符串转换为颜色

在Visual Basic中将字符串转换为颜色
EN

Stack Overflow用户
提问于 2016-01-09 02:30:07
回答 5查看 5.2K关注 0票数 0

这是我的想法:当退出表单时,它将背景色保存到一个名为settings.txt的临时文件中。下次打开表单时,它将检查该文件是否存在,如果存在,它将获取其中写入的内容(背景色),并将其更改为当前表单的背景色。在将settings.txt中的文本导入到背景色时,我遇到了问题。

代码语言:javascript
复制
    Dim fileReader As String
    fileReader = My.Computer.FileSystem.ReadAllText(TempDirectory + "/Settings.txt")
    System.Drawing.Color.FromName = fileReader.ToString

我在下面有一条蓝线:

代码语言:javascript
复制
System.Drawing.Color.FromName

当我将鼠标移到它上面时,它会显示

没有为“”Public Shared Function FromName(name As String) As System.Drawing.Color“”的参数“”name“”指定

参数。“”

顺便说一下,在settings.txt中编写的

颜色石灰

有什么建议吗?

Visual Basic 2008速成版

EN

回答 5

Stack Overflow用户

发布于 2016-01-09 02:40:16

System.Drawing.Color不是那种可以赋值的东西。无论你想要设置什么颜色,我想你都想要更像这样的颜色

代码语言:javascript
复制
SomeObject.Color = System.Drawing.Color.FromName("Lime")

因此,要从该变量中读取它,您可能需要如下内容:

代码语言:javascript
复制
SomeObject.color = System.Drawing.Color.FromName(fileReader.Replace("Color[").Replace("]"))

这些.Replace函数是为了去掉文件中的无关字符。

票数 3
EN

Stack Overflow用户

发布于 2016-01-09 02:47:24

将字符串转换为颜色

要将字符串转换为Color,可以使用以下任一选项:

它们都在System.Drawing.dll中。确保您有对System.Drawing dll的引用。

它们都在System.Drawing命名空间中。别忘了Imports System.Drawing

ColorConverter解析名称和RGB表示:

代码语言:javascript
复制
Dim color1 = color.FromName("Red")
Dim color2 = DirectCast(New ColorConverter().ConvertFromString("Red"), Color)
Dim color3 = DirectCast(New ColorConverter().ConvertFromString("255,0,0"), Color)

代码中的问题

代码中的问题是没有将名称传递给FromName方法。如果你想修复你的代码,你会发现Steve Barron的答案很有用。

其他可能对有帮助的选项

如果你想存储一些颜色作为设置,最好使用My Project下的Settings.settings文件,并添加一些设置,通过指定NameSystem.Drawing.ColorTypeUserScope,并为Value选择颜色。然后,您可以使用My.Settings简单地使用(读取、分配、保存、重置)这些设置。

它还支持Andrew Morton提到的property binding,你会发现他的回答很有用。这样,您就可以在设计时选择您的控件,然后在属性网格中,单击... (ApplicationSettings) (PropertyBinding)下的,并从对话框中将所需的属性绑定到设置。

票数 2
EN

Stack Overflow用户

发布于 2016-01-09 02:34:51

如果你在setting.txt中只写了一种颜色,那么你就错了

代码语言:javascript
复制
 Dim fileReader As String
    fileReader = My.Computer.FileSystem.ReadAllText(TempDirectory +  "/Settings.txt")
    System.Drawing.Color.FromName(fileReader)

在settings.txt中应该只写"Lime“而不是"ColorLime”(不带引号)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34683731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档