MSFlexGridで複数の項目が表示されており、その中の一つを選択すると他の項目が表示されないようにするにはどうすればいいのでしょうか?お願いします。
ちなみに、VB6です!
選択時の表示にはMSFlexGrid以外の何かを使う、とか。
文章の通りだと、選択されたセル以外のデータを削除するだけでは?
…なんで質問する必要があるのか分からない。
…その後、どう処理を続けるのか考えると更に意味が分からない。
Private Sub MSFlexGrid1_Click()
Dim lngBuf As Long
With MSFlexGrid1
.Redraw = False
lngBuf = .RowHeight(.Row)
.RowHeight(-1) = 0
.RowHeight(.Row) = lngBuf
.Redraw = True
End With
End Sub
#ちょっとちらつくカモね
正直自己満足以外で操作する人のことを何も考えていない
誤って選択したときとか、いろいろ使い勝手が悪そう。
Excelの数式バーみたいに選択したセルを表示する物を目立つ位置に置いておくのでは駄目ですか?
ひょっとしてこういうことだったりして。
Option Explicit
Private flgChange As Boolean
Private Sub Form_Load()
Dim lngRow As Long
Dim lngCol As Long
Dim n As Long
With MSFlexGrid1
For lngRow = .FixedRows To .Rows - 1
For lngCol = .FixedCols To .Cols - 1
.TextMatrix(lngRow, lngCol) = n
n = n + 1
Next lngCol
Next lngRow
End With
End Sub
Private Sub MSFlexGrid1_RowColChange()
Dim lngRow As Long
Dim lngCol As Long
Dim NowRow As Long
Dim NowCol As Long
If flgChange = True Then Exit Sub
NowRow = MSFlexGrid1.Row
NowCol = MSFlexGrid1.Col
flgChange = True
With MSFlexGrid1
.Redraw = False
For lngRow = .FixedRows To .Rows - 1
.Row = lngRow
For lngCol = .FixedCols To .Cols - 1
.Col = lngCol
If lngRow = NowRow And lngCol = NowCol Then
.CellForeColor = vbBlack
Else
.CellForeColor = vbWhite
End If
Next lngCol
Next lngRow
.Row = NowRow
.Col = NowCol
.Redraw = True
End With
flgChange = False
End Sub
なるほど!
なんか「神経衰弱」が作れそうだね(^^)
みなさん、解決しました。ありがとうございますm(._.)m
ツイート | ![]() |