想弄个股票小软件,数据库方面已经搞定。
我现在是用datagridview来实现多股排列浏览的,这部分速度还可以,
但是有一个问题,如果要上色,就是今天比昨天涨了,整条就是红色文字,降了就是绿色文字。。
这个貌似用datagridview来遍历行和昨天进行判断。。速度会比较慢,
1000多行,上色时间4-5秒多我看很多股票软件都是一点鼠标,就直接全出来了,色彩也是好的,这个应该怎么弄呢?
如果不用datagridview的话,应改怎么考虑呢?请指教~~有思路就可以,不一定要代码~~

解决方案 »

  1.   

    这种功能都是直接绘图的,哪有用表格的...想比较简单的实现去看看GDI+绘图或MS Chart之类...
      

  2.   

    数据源是DataTable吗?
    我记得DataTable有个Select方法, 里面的参数类似Sql。效率应该能高很多。
      

  3.   

    试试 dataGrid_CellFormatting 事件
      

  4.   

    楼主硬要想实现的话
    在sql语句端处理
    单sql 查询当前数据,然后多个字段 表示涨跌
    在显示时判断下
    不要在这里遍历 效果不好
      

  5.   

    win的可以这样
      int Top = 控件ID.FirstDisplayedScrollingRowIndex;
                if (Top == -1)
                {
                    return;
                }
                int count = 控件ID.DisplayedRowCount(true) + Top;
                for (; Top < count; Top++)
                {
    //上色
                }
      

  6.   

    时啊,用GDI+的话,效率应该能提高很多的。
      

  7.   

    在DB中构建sql,返回给app的结构中,包含昨天股票数据,在datagridview的RowDataBind事件中更改该行字体颜色
      

  8.   

    看来好多大大说用gdi+
    这个那就是说要自己写个类似datagridview的表格控件??
    这个不太明白呢。。那左右滚动怎么办?点击单个股票怎么办?算像素宽度?
    mschart看过一点点。。画图的吧。。画单个股票曲线用的呀,怎么用在这里呢。。还有大大说用sql的
    是不是sql出来后有红颜色的co列为1,绿色col为2?灰色为3?
    这个出来后一样写入datagridview呀,还是要
    foreach(row in datagridview.rows)
    {
      判断col值给正行颜色?
    }
      

  9.   

    我才明白, 原来lz不是要画图。
    只是在DataGridView里面改颜色。你用CellFormatting事件来改好了。这样, 不画的Cell, 不参与计算的。
    只有当前显示的Cell才会参与计算。速度会快很多。
      

  10.   

    楼上说的我晚上回去看看,研究一下
    主要是想以前dos下的炒股软件,是怎么实现的,速度也很快呀,难道是自制datagridview函数?类?控件?不好意思。。也许我表达不清楚。winform。..
    图片上不上来..."就是像excel排列的那个多股页面就好。。就是进入上证A后,随便给我截一个。"还有.整行的也许可以比较快,比方说,一行中有很多个单元格要比较,有可能红色,有可能绿色.这样还可以提高速度么...也就说一行内有相当多个颜色..这个情况该怎么考虑呢...
      

  11.   

    如果用excel的话,可以用条件格式
      

  12.   

    用GDI+可以实现
    楼上的人都说完了……
      

  13.   

    看来确实得GDI+了哈,那多问一句..也就是drawline来实现是么..
    那我怎么保证用户点每行后会有东西?那不是图片嘛....再教教~~~
      

  14.   

    我不是画股票曲线了啦...那个我用zedgraph或者ms chart,我自己的库都可以的撒..我要做的是那个股票表....,每行颜色不一样,行中每一个值也可能颜色不一样...
      

  15.   

    这种功能都是直接绘图的,哪有用表格的...想比较简单的实现去看看GDI+绘图或MS Chart之类...
      

  16.   

    前面看过ms vs2008 .net3.5sp1带的mschart,各位兄台说的不是那个吧..
    而是microsoft chart control version6.0(oledb)是吧..这个可以给个例子么?谢谢~~~
      

  17.   

    我装的2008 r2,vs2008,vs2010.....
    com组件里没有microsoft chart control version6.0(oledb)...咋办...
      

  18.   


    就是这种效果啦..各位大大说的GDI+说的是自己画这个么?那相应的点击操作呢?..
      

  19.   

    大家也看到了.这个表里面每行中有多个颜色不一样..
    用datagridview的时候,不上色的话..速度很可观.但是每个单元格都要上不同颜色..那速度...行上色还可以..但是总有些格子是不一样的颜色...
      

  20.   

    还有..这个mschart控件.是不是我系统太新..这个都消失了...哎....net3.5sp1带的ms chart貌似画折线,饼子图之类的把..
      

  21.   

    GDI是什么东西! 还没听说过!
      

  22.   

    使用GDI+和数据绑定即可实现此功能.
      

  23.   

    好啦好啦,看看GDI+怎么做表格和互动的....以前都是用来画图的说...
    哪位能给个例子?就是画好后可以点击的?
      

  24.   

    用gdi+画好的是图片吧...对应的用户操作呢?图片尺寸/股票数目,来判断选的哪个股票?
    表头单独画一个?可实现冻结窗口的效果是吧...然后给每个固定长宽对应上操作?是这样滴嘛?