【问题标题】:Change the forecolor of textbox according to the string of that textbox根据文本框的字符串改变文本框的前景色
【发布时间】:2015-11-04 11:11:50
【问题描述】:

是否可以创建一个应用程序,在单击按钮时根据文本框内的文本更改文本框的前景色(从而更改文本框内文本的颜色)?

目前我可以通过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 来做到这一点吗?我的意思是系统可以检测到字符串并依靠该字符串来更改其前景色或类似的东西吗?

【问题讨论】:

    标签: vb.net textbox uicolor


    【解决方案1】:

    当然,你不需要像按钮点击这样的额外事件,你可以在 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)。

    【讨论】:

      【解决方案2】:
      TextBox1.ForeColor = Color.fromname(textbox1.text)
      

      【讨论】:

      • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
      猜你喜欢
      • 2011-04-27
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多