2011-12-01 53 views
1

如何使用colorDialog将文本版本的颜色置于文本框中?我有一个文本框,点击旁边的一个按钮,我点击colorDialog。颜色的tsring进入文本框,但最终结果是'颜色[绿色]'的形式,而不是简单的'绿色'。有一个更好的方法吗。我目前的代码如下:如何使用ColorDialog在C#/ Excel中的文本框中放置文本Interop

public partial class ColorTie : Form 
{ 
    public ColorTie() 
    { 
     InitializeComponent(); 
    } 

    private void ColorTie_Load(object sender, EventArgs e) 
    { 

    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     colorDialog1.ShowDialog(); 

     if (colorDialog1.ShowDialog() == DialogResult.OK) 
     { 
      textBox1.Text = colorDialog1.Color.ToString(); 
     } 
    } 

} 

回答

0

如果我正确理解你的问题,我相信你正在寻找的财产是Color.Name

如果用户从对话框中选择红色,colorDialog1.Color.Name将返回字符串“红色”。但要小心,因为用户可能会选择一个没有Color.Name属性值的颜色。为了防止这种情况,您可以检查Color.IsNamedColor property;如果是这样的话,你可以像我描述的那样使用Color.Name(否则你会得到RGB值)。

事情是这样的:

if (colorDialog1.ShowDialog() == DialogResult.OK) { 
    if (colorDialog1.Color.IsNamedColor) { 
     Console.WriteLine("Named color: {0}", colorDialog1.Color.Name); 
    } 
} 
0

试试这个:

textBox1.Text = colorDialog1.Color.Name; 
0

您可以在图片框的颜色,这是可视化的最佳方式,并记住你的颜色的choise:

private void button1_Click(object sender, EventArgs e) 
{ 

    ColorDialog cd = new ColorDialog(); 
    if (cd.ShowDialog() == DialogResult.OK) 
    { 
     MessageBox.Show(cd.Color.ToString()); 
     pictureBox1.BackColor = cd.Color; 
    } 

} 
相关问题