【发布时间】:2015-07-17 07:14:45
【问题描述】:
在 Visual C#.NET 中:
我希望能够制作一个颜色对话框,并拥有它以便用户只能选择几种颜色(特别是可用于命令提示符/批处理文件的颜色)。这是怎么做到的?如何限制用户可以选择的颜色?
另外,有没有办法“停靠”颜色对话框,这样它就不会以新形式打开,而是保留在我的主窗体中?
【问题讨论】:
标签: c# .net winforms colordialog
在 Visual C#.NET 中:
我希望能够制作一个颜色对话框,并拥有它以便用户只能选择几种颜色(特别是可用于命令提示符/批处理文件的颜色)。这是怎么做到的?如何限制用户可以选择的颜色?
另外,有没有办法“停靠”颜色对话框,这样它就不会以新形式打开,而是保留在我的主窗体中?
【问题讨论】:
标签: c# .net winforms colordialog
这就是你想要的吗?
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;
}
我认为你不能停靠颜色对话框。
【讨论】:
以下是您的案例中 ColorDialog 控件的一些有用属性。但是它们都不能满足您的要求。我认为在您的情况下,您必须使用自定义颜色列表创建自己的对话框。
AllowFullOpen - 指定用户是否可以选择自定义颜色。
CustomColors - 用户选择的自定义颜色的集合。
FullOpen - 指定用于选择自定义颜色的部分是否自动打开。
用户可以创建自己的一组自定义颜色。这些颜色包含在由创建颜色所需的 ARGB 分量(alpha、红色、绿色和蓝色)值组成的 Int32 中。仅当 AllowFullOpen 设置为 true 时才能定义自定义颜色。因此,无法设置 CustomColors 并限制其他颜色。
【讨论】: