我的行中的值等于-16777056,但是如何将其转换为Color?
像这样的东西:
Color = (Color) Convert.ToInt32(((DataRowView)this.dataGridView1.Rows[e.RowIndex].DataBoundItem)["Color"]) })
Run Code Online (Sandbox Code Playgroud)
Edw*_*son 32
颜色和数字之间的转换称为颜色 - 字形联觉,并且具有该条件的人能够识别数字的颜色(或甚至形状或"感觉").但是,这里的一个棘手问题是,这在计算机中从未被识别过(仅限于人).此外,这种情况通常是由于人的遗传,但是在迷幻药物使用后已有报道.虽然我永远不会建议使用非法药物,但我认为滑倒你的CPU一些LSD可能值得一试.
另一个困难是联觉者之间没有共同点 - 也就是说数字6与我的颜色不同于你.因此,这些可能会在您的计算机上呈现与我的不同.(有点像"哇,男人,我怎么知道那些颜色为"蓝色"对我来说不像我认为"红色"对你来说的东西?"但是,我们再次回到非法毒品.)
这就是我试图将数字转换为颜色的方式.也就是说,除非您的数字实际上代表了一些有用的东西,比如ARGB颜色值.在这种情况下,您可以使用:
Color.FromArgb(numericValue);
Run Code Online (Sandbox Code Playgroud)
试试这个:
var argb = Convert.ToInt32(
((DataRowView)this.dataGridView1.Rows[e.RowIndex].DataBoundItem)["Color"]);
Color = Color.FromArgb(argb);
Run Code Online (Sandbox Code Playgroud)
嗯,你知道颜色首先变成了整数吗?我的猜测是它是由连接字节组成的ARGB值.
如果是这样,这是最简单的方法:
var myColor = Color.FromArgb(myColorInt);
Run Code Online (Sandbox Code Playgroud)
它将被集成到您的实际代码行中,例如:
var myColor = Color.FromArgb(Convert.ToInt32(((DataRowView)this.dataGridView1.Rows[e.RowIndex].DataBoundItem)["Color"]) }));
Run Code Online (Sandbox Code Playgroud)