这是我的想法:当退出表单时,它将背景色保存到一个名为settings.txt的临时文件中。下次打开表单时,它将检查该文件是否存在,如果存在,它将获取其中写入的内容(背景色),并将其更改为当前表单的背景色。在将settings.txt中的文本导入到背景色时,我遇到了问题。
Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText(TempDirectory + "/Settings.txt")
System.Drawing.Color.FromName = fileReader.ToString
我在下面有一条蓝线:
System.Drawing.Color.FromName
当我将鼠标移到它上面时,它会显示
没有为“”Public Shared Function FromName(name As String) As System.Drawing.Color“”的参数“”name“”指定
参数。“”
顺便说一下,在settings.txt中编写的
颜色石灰
有什么建议吗?
Visual Basic 2008速成版
发布于 2016-01-09 02:40:16
System.Drawing.Color不是那种可以赋值的东西。无论你想要设置什么颜色,我想你都想要更像这样的颜色
SomeObject.Color = System.Drawing.Color.FromName("Lime")
因此,要从该变量中读取它,您可能需要如下内容:
SomeObject.color = System.Drawing.Color.FromName(fileReader.Replace("Color[").Replace("]"))
这些.Replace
函数是为了去掉文件中的无关字符。
发布于 2016-01-09 02:47:24
将字符串转换为颜色
要将字符串转换为Color
,可以使用以下任一选项:
它们都在System.Drawing.dll
中。确保您有对System.Drawing
dll的引用。
它们都在System.Drawing
命名空间中。别忘了Imports System.Drawing
。
ColorConverter
解析名称和RGB表示:
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
文件,并添加一些设置,通过指定Name
和System.Drawing.Color
为Type
,User
为Scope
,并为Value
选择颜色。然后,您可以使用My.Settings
简单地使用(读取、分配、保存、重置)这些设置。
它还支持Andrew Morton提到的property binding,你会发现他的回答很有用。这样,您就可以在设计时选择您的控件,然后在属性网格中,单击...
(ApplicationSettings)
(PropertyBinding)
下的,并从对话框中将所需的属性绑定到设置。
发布于 2016-01-09 02:34:51
如果你在setting.txt中只写了一种颜色,那么你就错了
Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText(TempDirectory + "/Settings.txt")
System.Drawing.Color.FromName(fileReader)
在settings.txt中应该只写"Lime“而不是"ColorLime”(不带引号)
https://stackoverflow.com/questions/34683731
复制相似问题