我想实现这样的东西,
如果DataGridTextboxColumn中的值是负数,我希望
用红色现实,
显示的值是正数比如:
当前值是-10
我想显示成红色的10目前,我用的方法不完善,继承了DataGridTextboxColumn类,并且红色的已经解决了,但是显示的值是正数没做出来,十分郁闷希望得到各位高手的指点,什么样的方法都行

解决方案 »

  1.   

    忘了说了,是winform的datagrid,^^
      

  2.   

    to:雪饮狂刀
    DataGridTextboxColumn类里面的paint方法有个字体颜色参数,可是没有显示字符串的参数,~~
      

  3.   

    好像是继承DataGridTextBoxColumn后,重写Paint方法,根据值的正负再使用DrawString,具体实现忘记了,你可以去codeproject上找个继承DataGridTextBoxColumn实现下拉框的例子参考参考
      

  4.   

    http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q837q
      

  5.   

    如果你的datagrid不支持排序的话,你也可以用一个静态int[]保存每一行的值,比如负数为1,正数为0, 然后在继承的DataGridTextboxColumn类中 根据静态int[]中的值,来判断红色.
    你原来用"-"号判断红色的话  "-"号是不能去掉的.
    还用一种方法  就是 你用一列宽度为0的列来存放负数的情况,显示红色,然后你那一列根据前面宽度为0的列来显示红色.
      

  6.   

    object o = this.GetColumnValueAtRow(source, rowNum); string  dt = o.ToString();
    if ( dt.Trim() == "T" )//true,为负数
    {
    foreBrush = new SolidBrush(Color.Red);
    foreBrush1 = foreBrush;
    }
    else if ( dt.Trim() == "F" )//false,正数
    {
    foreBrush = new SolidBrush(Color.Black);
    foreBrush1 = foreBrush;
    }
    else
    {
    foreBrush =foreBrush1;
    }
    //2个列  都用同一个继承的DataGridTextboxColumn,宽度为0的列不显示,里面的值只保存正数或负数的状态,你那一列把"-"取掉,随前面那列是颜色变
    //public static System.Drawing.Brush foreBrush1 = new SolidBrush(Color.Black);
      

  7.   


    设置CultureInfo.NumberFormat,然后赋值给Application.CurrentCulture