本帖最后由 zpc38368330 于 2013-09-28 13:36:46 编辑

解决方案 »

  1.   

    c#的颜色操作怎么这么麻烦,就不能像c++那样颜色就是一个数值,爱怎么玩怎么玩,各位大神有没有好的办法转换 color的值
      

  2.   

    吃饭前再顶下,
    现在出现这么个情况
    定义变量
    Excel.Range range;
    string strColor;
    设 range=  Excel的单元格A1,现在A1为红色的字。
    第一步,我先用strColor得到A1单元格颜色的字符串。
        我将鼠标放到下面代码的“Color”上,显示的是range.Font.Color是个Object类型,这个类型我不知道   怎么转换成有效的Color类型
    strColor=range.Font.Color.ToString();
    第二步,将字符串转换成32位数值
    uint uColor= UInt32.Parse(strColor);
    第三步,将字符串再改成HTML的字符串
    string strHtmlColor="#"+Convert.ToString(uColor,16)
    然后最后一步,设置DataGridView的某行的字体颜色
    datagridview.rows[i].DefaultCellStyle.ForeColor=ColorTranslator.FromHtml(strHtmlColor)
    然后
    在Excel里显示红色的字体,转到DataGridView中就是蓝色的了在第一步中range.Font.Color.ToString();得到的颜色是  “255”
    转成16进制strHtmlColor里的字符串应该是“#ff”,而在potoshop里0000ff是蓝色的,就发现这么点东西
    可是我想要的是红色,总不至于我要把strHtmlColor该成#ff0000吧(R=FF,G=00,B=00),这样如果换别的颜色这么改岂不是要乱套而且总感觉C#的颜色操作没这么复杂吧,应该是我弄错了,C#我才学两3个星期,一直用的C++,都说C#易学难用,看来是一点不假,一个小小的颜色就让人纠结这么久,还让不让我活了~~~