如何指定C#ColorDialog中可以选择的颜色?

时间:2011-06-18 02:29:40

标签: c# .net winforms colordialog

在Visual C#.NET中:

我希望能够创建一个颜色对话框,并使用户只能选择几种颜色(特别是可用于命令提示符/批处理文件的颜色)。这是怎么做到的?如何限制用户可以选择的颜色?

此外,有没有办法“停靠”颜色对话框,以便它不会以新的形式打开,但保留在我的主窗体中?

2 个答案:

答案 0 :(得分:4)

这可能是你想要的吗?

    private void ShowColorDialog()
    {
        ColorDialog cd = new ColorDialog();
        cd.CustomColors = new int[] { ToInt(Color.Red), ToInt(Color.Blue), ToInt(Color.YellowGreen) };
        cd.SolidColorOnly = true;
        cd.ShowDialog();
    }

    static int ToInt(Color c)
    {
        return c.R + c.G * 0x100 + c.B * 0x10000;
    }

我认为你无法停靠颜色对话框。

答案 1 :(得分:0)

以下是您的案例中ColorDialog控件的一些有用属性。但它们都不能满足你的常量。我认为在您的情况下,您必须使用自定义颜色列表创建自己的对话框。

AllowFullOpen - 指定用户是否可以选择自定义颜色。

CustomColors - 用户选择的自定义颜色的集合。

FullOpen - 指定是否自动打开用于选择自定义颜色的部件。

用户可以创建自己的一组自定义颜色。这些颜色包含在由创建颜色所需的ARGB组件(alpha,红色,绿色和蓝色)值组成的Int32中。仅当AllowFullOpen设置为true时,才能定义自定义颜色。因此,无法设置CustomColors并限制其他人。