在Visual C#.NET中:
我希望能够创建一个颜色对话框,并使用户只能选择几种颜色(特别是可用于命令提示符/批处理文件的颜色)。这是怎么做到的?如何限制用户可以选择的颜色?
此外,有没有办法“停靠”颜色对话框,以便它不会以新的形式打开,但保留在我的主窗体中?
答案 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并限制其他人。