通过文本框使用字符串改变表单的背景颜色
本文关键字:表单 改变 背景 颜色 字符串 文本 | 更新日期: 2023-09-27 18:15:55
我使用下面的代码,以便从使用TextBox的用户那里获得表单背景的颜色,如果颜色与c#颜色匹配,则将表单背景颜色更改为用户输入的颜色,否则它会显示一个消息,该颜色不存在。
问题是没有办法从包含颜色名称的字符串中读取颜色。所以我不能用
Form1.ActiveForm.BackColor = Color.text
我能做什么来解决这个问题?
private void button1_Click(object sender, EventArgs e)
{
string text = textBox1.Text;
string[] colors = Enum.GetNames(typeof(System.Drawing.KnownColor));
for (int i = 0; i < colors.Length; i++)
{
if (colors[i] == text)
{
// Form1.ActiveForm.BackColor = Color.
MessageBox.Show("BackGround Color of Form Has Been Changed");
}
else
{
MessageBox.Show("Color You Entered Does Not Exist");
}
}
}
您可以使用这样的代码:
this.BackColor = (Color)new ColorConverter().ConvertFromString(textbox1.Text);
但是比TextBox
更好的是含有颜色的ComboBox
。您可以使用KnowsColor
或任何其他颜色名称列表填充ComboBox
:
comboBox1.DataSource = Enum.GetValues(typeof(KnownColor)).Cast<KnownColor>().ToList();
然后当你想从ComboBox
:
if(comboBox1.SelectedIndex>=0)
this.BackColor = Color.FromKnownColor((KnownColor)comboBox1.SelectedValue);