好的,我現在要進行搜索了。通過在測試之前設計系統,看看它是否真的起作用,我似乎犯了一個錯誤。基本上,我提供了一個顏色對話框的提示來獲取用戶選擇的顏色。我正在使用此代碼:使用ColorDialog在數據網格中設置顏色
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函數,並且這些單元格不僅沒有顏色,而且已經在datagrid單元格中弄亂了文本。有沒有辦法讓它顯示用「ff8000」這樣的名稱選擇的顏色,或者從colorDialog選擇屏幕中排除這些顏色?我真的不想用顏色創建自己的自定義對話框,只要我能幫助它。如果有必要,我甚至會回去改變它在數據庫中的存儲方式。任何幫助,將不勝感激!
謝謝!
感謝您的回覆!我曾想過這樣做,但不幸的是我使用SQL compact 3.5 express。我可以分配字段的唯一值如下。我可以使用其中之一將其作爲對象存儲嗎? bigint,binary,bit,float,image,int,money,nchar,ntext,numeric,nvarchar,real,smallint,tinyint,uniqueidentifier,varbinary,rowversion。唯一看起來很接近的是「真實的」。這會起作用嗎? – user1420914
我用一種將它作爲整數存儲的方式更新了答案。 –
好的,謝謝!我會試試看! – user1420914