好的,我快用谷歌搜索了。通过在测试之前设计系统以查看它是否真的有效,我似乎犯了一个错误。基本上,我向颜色对话框提供提示以获取用户选择的颜色。我正在使用这段代码:
ColorDialog MyDialog = new ColorDialog();
// Keeps the user from selecting a custom color.
MyDialog.AllowFullOpen = false;
MyDialog.AnyColor = false;
// Allows the user to get help. (The default is false.)
MyDialog.ShowHelp = true;
MyDialog.SolidColorOnly = true;
// Open color selection dialog box
MyDialog.ShowDialog();
functionValue = MyDialog.Color.Name;
function = "highlight";
currentFunctionValue = MyDialog.Color.Name;
functionValue 被定义为一个字符串,它保存从数据库中检索到的颜色。例如,“红色”。稍后,我使用以下代码为数据网格中的一个单元格或一行单元格着色:
if (ruleFunction[j] == "highlight")
{
Color color = Color.FromName(ruleFunctionValues[j]);
grdTransactions.Rows[i].Cells[index].Style.BackColor = color;
}
如果颜色名称是“红色”、“蓝色”等,这可以正常工作。但是,某些对话框选项会返回诸如“ff8000”之类的值和颜色的其他十六进制表示。我猜这会抛出 Color.FromName 函数,并且单元格不仅没有颜色,而且在数据网格单元格中弄乱了文本。有没有办法让它显示以“ff8000”之类的名称选择的颜色,或者从 colorDialog 选择屏幕中排除这些颜色?如果可以的话,我真的不想用颜色创建自己的自定义对话框。如有必要,我什至会回去更改它在数据库中的存储方式。任何帮助,将不胜感激!
谢谢!