在ColorDialog中设置CustomColors
颜色对话框中的自定义颜色集应使用以下代码设置为{Blue,Blue}:
colorDialog1.CustomColors = new int[] { System.Drawing.Color.Blue.ToArgb(), 0xFF0000 }; colorDialog1.ShowDialog();
但是,我得到了另一套{Black,Blue}:
不知道我在这里做错了什么? 谢谢。
您需要使用OLE颜色 。 实现此目的的简单方法是使用内置的ColorTranslator
对象,例如
colorDialog1.CustomColors = new int[] { ColorTranslator.ToOle(Color.Blue), ColorTranslator.ToOle(Color.Red) }; colorDialog1.ShowDialog();
如果需要从HTML颜色转换,也可以使用ColorTranslator.FromHtml
方法,例如
colorDialog1.CustomColors = new int[] { ColorTranslator.ToOle(Color.Blue), ColorTranslator.ToOle(ColorTranslator.FromHtml("#FF0000")) };
如果使用ColorTranslator FromArgb,则可以保持RGB颜色的正确顺序。 例如,ColorTranslator.ToOle(Color.FromArgb(255,0,0))为红色。 您也可以使用它来设置没有名称的颜色,例如,亮红色ColorTranslator.ToOle(Color.FromArgb(255,31,33))。