是否可以创建一个可以更改文本框前景色的应用程序(从而更改该文本框内文本的颜色),具体取决于单击该按钮时该文本框内的文本?
到目前为止,我可以通过if-else
来完成,我觉得这不是最有效的方式来做各种颜色。
我有这段代码
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If TextBox1.Text = "red" Then
TextBox1.ForeColor = Color.Red
ElseIf TextBox1.Text = "green" Then
TextBox1.ForeColor = Color.Green
End If
End Sub
结束班
问题:我可以不使用if else吗?我的意思是系统可以检测到字符串并依赖该字符串来改变它的前色或类似的东西吗?
答案 0 :(得分:3)
当然,您不需要执行其他事件,例如按钮单击,您可以在text_change事件中处理此事件。it will not throws any exception if the text is not a valid colour,just maintain the predefined color
。你可以这样做:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
TextBox1.ForeColor = Color.FromName(TextBox1.Text)
End Sub
根据MSDN,预定义颜色也称为已知颜色和 由KnownColor枚举的元素表示。如果 name参数不是预定义颜色的有效名称 FromName方法创建一个ARGB值为0的Color结构 (也就是说,所有ARGB组件都是0)。
答案 1 :(得分:0)
TextBox1.ForeColor = Color.fromname(textbox1.text)