根据该文本框的字符串更改文本框的前景色

时间:2015-08-12 02:31:40

标签: vb.net textbox uicolor

是否可以创建一个可以更改文本框前景色的应用程序(从而更改该文本框内文本的颜色),具体取决于单击该按钮时该文本框内的文本?

到目前为止,我可以通过if-else来完成,我觉得这不是最有效的方式来做各种颜色。

enter image description here

我有这段代码

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吗?我的意思是系统可以检测到字符串并依赖该字符串来改变它的前色或类似的东西吗?

2 个答案:

答案 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)