簡體   English   中英

如何使用ColorDialog在C#/ Excel Interop中的文本框中放置文本

[英]How to use ColorDialog to place text in Textbox in C# / Excel Interop

如何使用colorDialog將顏色的文本版本放入文本框? 我有一個文本框,單擊旁邊的按鈕后會彈出colorDialog。 顏色的文字進入文本框,但最終結果為“顏色[綠色]”形式,而不僅僅是“綠色”形式。 有一個更好的方法嗎。 我當前的代碼如下:

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();
        }
    }

}

您可以在PictureBox中設置顏色,這是可視化和記住顏色選擇的最佳方法:

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;
    }

}

如果我正確理解了您的問題,則認為您要查找的屬性是Color.Name

如果用戶從對話框中選擇紅色,則colorDialog1.Color.Name將返回字符串“ Red”。 不過要當心,因為用戶可能選擇的顏色沒有Color.Name屬性值。 為了防止這種情況,您可以檢查Color.IsNamedColor屬性 如果是真的,則可以使用我所描述的Color.Name (否則,您將獲得RGB值)。

像這樣:

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

嘗試這個:

textBox1.Text = colorDialog1.Color.Name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM