Как использовать ColorDialog для размещения текста в текстовом поле в C # / Excel Interop - PullRequest
1 голос
/ 01 декабря 2011

Как вы используете 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();
        }
    }

}

Ответы [ 3 ]

0 голосов
/ 01 декабря 2011

попробуйте это:

textBox1.Text = colorDialog1.Color.Name;
0 голосов
/ 30 июня 2016

Вы можете установить цвет в 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;
    }

}
0 голосов
/ 01 декабря 2011

Если я правильно понимаю ваш вопрос, я считаю, что вы ищете следующее свойство: Color.Name.

Если ваш пользователь выбирает красный цвет в вашем диалоговом окне, colorDialog1.Color.Nameвернет строку "Красный".Однако будьте осторожны, поскольку пользователь может выбрать цвет, который не имеет значения свойства Color.Name.Чтобы защититься от этого, вы можете проверить Color.IsNamedColor свойство ;если это правда, вы можете использовать Color.Name, как я описал (в противном случае вы получите значение RGB).

Примерно так:

if (colorDialog1.ShowDialog() == DialogResult.OK) {
    if (colorDialog1.Color.IsNamedColor) {
        Console.WriteLine("Named color: {0}", colorDialog1.Color.Name);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...