1

我目前通过以下代码将 color.value.name 作为字符串保存到 sql db

this.colorDialog1.Color.Name 

但是当我从 db 中读取保存的颜色并希望通过以下代码用作 Label 的前景色时

this.label3.ForeColor = System.Drawing.Color.FromName(dbsavedcolorstring);

它不起作用!

有时在数据库中保存的颜色名称就像“ffc8dd7d”但有时它保存为“红色”!?不知道为什么???

4

1 回答 1

0

您的命名约定存在同步问题。FromName Method用于 ; 中的名称System.Drawing.Color struct。例如,当您键入以下内容时,您会得到:

this.label3.ForeColor = Color.Red; //Red is the name expected in Color.FromName

但是colorDialog1.Color.Name不存储为System.Drawing.Color(主要是因为此结构中的颜色数量比潜在选项要有限得多)。您可以根据需要强制Color存储 (并在将颜色应用于 时依赖此约定Label)。例如:

Int storeAsARGB = this.colorDialog1.Color.ToArgb();
this.label3.ForeColor = Color.FromArgb(storeAsARGB);
于 2013-08-28T08:51:25.177 回答