单击MSFlexGird中某一单元格,则该单元格所在行改变背景色
请高手帮忙写一下代码
谢谢啦
麻烦

解决方案 »

  1.   

    Option ExplicitPrivate Sub Form_Load()
      Me.MSHFlexGrid1.SelectionMode = flexSelectionFree '允许单元格选中
    End SubPrivate Sub MSHFlexGrid1_EnterCell()
      Static oldRow%
      Dim i%, oldCol%, curRow%
      
      With MSHFlexGrid1
        
        '保存当前单元格位置
          curRow% = .Row
          oldCol% = .Col
        
        '还原上次更改的行的背景色
          If oldRow% <> 0 Then
            .Row = oldRow%
            For i% = .FixedCols To .Cols - 1
              .Col = i%
              .CellBackColor = &H8000000E '默认背景色
            Next
            .Row = curRow%
          End If
          
        '更改当前选中行颜色
          
          For i% = .FixedCols To .Cols - 1
            .Col = i%
            .CellBackColor = RGB(255, 0, 0)
          Next
          .Col = oldCol%
        
        oldRow% = .Row '保存当前行,以便下次还原为默认背景色
        
      End With
    End Sub
      

  2.   

    以上代码有一处不准确:(当有多个固定行时会出错)'还原上次更改的行的背景色
          If oldRow% <> 0 Then应该改为:'还原上次更改的行的背景色
          If oldRow% > .FixedRows - 1 Then
      

  3.   

    Option Explicit
    Private n As Long
    Private m As LongPrivate Sub Form_Load()
      With Me.MSFlexGrid1
        .Cols = 5
        .Rows = 6
      End With
    End SubPrivate Sub MSFlexGrid1_Click()
      Dim j As Long  With Me.MSFlexGrid1
        For j = 1 To 4
          .Col = j
          .CellBackColor = vbRed
          n = .Row
        Next
        Debug.Print n
        
        Debug.Print m
        If m <> n And m <> 0 Then
           For j = 1 To 4
            .Col = j
            
            .Row = m
            .CellBackColor = vbWhite
            Next
        End If
        m = n
        End With
    End Sub这么简单的用全局变量去记录row,用cellbackcolor改变颜色,以后请不要直接要代码了.
      

  4.   

    谢谢 , 
    yechat(点尘不惊) :麻烦问一下,你用的是什么语言啊,为什么会有%,不好意思,小妹  
                       学识肤浅。嘻嘻
    daisy8675(莫依 MS MVP-VB):谢谢,我明白你的意思了,用一个循环分别设置每个单元格的
                       cellbackcolor,呵呵 这么简单,我怎么就没想到呢,莫依同学,我
                       可不可以冒昧的问一下你的qq号,只想问你一下:有一个界面是用什么
                       控件做的,由于是个图我不知怎么发到论谈上,可不可以,到时我把分
                       数在CSDN上给你加分好么?你加我也可以,84085417,不过要麻烦你注
                       明你是谁,我是不随便加陌生人,不好意思,麻烦了
      

  5.   

    现在学VB的都换女人了?
    而且这个女人明显对我们的老斑有兴趣。 :D%是类型声明字符Dim i%等同于:Dim i as Integer
      

  6.   

    to 楼上虽然可以那么写,但是并不建议那么写,因为那样写会只会造成误解
    建议你看看MS曾经出过的一本书,繁体的译名叫《VB设计实务》
    另外,编程只有好坏之分,什么时候有过男女之分。:)to LZ
    有问题上论坛问大家吧,集体的智慧好过个人,QQ不用