VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2004/10/04(Mon) 01:36
投稿者水無月
Eメール
URL
タイトルRe: MSFlexGrid でセルを未選択状態にする

次のやり方はいかがでしょうか?(外していたらごめんなさいです)
「行の選択」状態を、プロシージャを作成してそれらしく見せる、というやり方です
次のとおりです。

該当フォームのモジュール先頭に
Private myLoad as Boolean'ユーザが行を変えた場合True、「行選択」プロシージャ実行中はFalse
Private myCol as Integer'列の記憶値
Private myColor as Long'セルの背景色

MSFlexGrid1_RowColChangeに以下を書き込む
     If myLoad=False then Exit Sub'「行選択」プロシージャ実行中は無視
   myLoad=False
     行選択 True'通常の「行選択」プロシージャを実行
     myLoad=True

次のプロシージャを追加
Private Sub 行選択(Sentaku as Boolean)
     if myLoad=False then Exit Sub
     With MSFlexGrid1
          .HighLight=0
          .Visible=False'表示を消す
          .myCol=.Col'列を記憶
          '■■行選択状態はTrue
          If Sentaku=True then
               myColor=&H00FF0000&'セルの背景色を青にする→好みで色を変えて下さい
               .FocusRect=1'好みで2でもOk
          '■■行選択を解除する場合はFalse
          Else
               myColor=&H80000005&'セルの背景色を白にする
               .FocusRect=0
          End If

          For i=0 to .Cols-1
               .CellBackColor=myColor
          Next
          .Col=myCol
          .Visible=True
     End With
     myLoad=True
End Sub

もし修正状態で、行の選択をしたくない場合は、「行選択 False」と書き込んで実行し、
終わったら「行選択 True」を実行します


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -