stringgrid中的两列
TB001 TB002
1001 名称1
1002 名称2
1003 名称3
1004 名称4
1005 名称5
1006 名称6
1007 名称7
2001 名称8
2002 名称9
2003 名称10
2004 名称11
2005 名称12
3001 名称13
3002 名称14
3003 名称15
3004 名称16
4001 名称17
4002 名称18
7001 名称19
7002 名称20
7003 名称21
比如我按7,会自动定位到 7001  名称19,这一行,按4 ,定位到4001  名称17 这一行?

解决方案 »

  1.   

    在StringGrid1的KeyPress事件弄个
        for i := 1 to StringGrid1.RowCount do
        begin
          if Copy(StringGrid1.Cells[1, i], 1, 1) = Key then
            StringGrid1.Row := I;
        end;
      

  2.   

    在StringGrid1的KeyPress事件弄个
        for i := 1 to StringGrid1.RowCount do
        begin
          if Copy(StringGrid1.Cells[1, i], 1, 1) = Key then
            StringGrid1.Row := I;
        end;
      

  3.   

    Copy(StringGrid1.Cells[1, i], 1, 1)    注意CELLS的COL参数  如果你第1列就是TB001 那你改成CELLS[0,i]就该可以了我测试时 是在StringGrid1.SetFocus的情况下
      

  4.   

    stringgrid貌似不支持selectrows这个事件
    建议换成TMS组件的advstringgrid,支持我刚才说的这个
    然后Advstringgrid1.SelectRows(i,1);stringgrid.row:=i时 就看到个虚线框 不明显