■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#5784-0おひさです。またグリッドの質問です。のの@プログラム&VB初心者1999-12-17(金) 01:08
#5784-0
おひさです。またグリッドの質問です。
ののです。
久々ですがまたフレキシブルグリッドについての質問です。
(VB6)
グリッドで例えば10行3列の表を作ったとします。(固定行なし)
そこへ5件のデータ(受け取ったデータ)を上から表示しました。
それは1行がいつの情報です。
ですから私は選択する時1行まるまるアクティブになるように
グリッドのプロパティを2-allselectionrow(確かこんな名前でした)に
しています。そしてその5件なら5行目までしかカーソル&マウスが行かない
ようにしています。(それより下に行こうとすると戻す。)
そして結構できたっぽいのですが、初期状態においてアクティブになっているはずの
行(1行目)の一列目しかアクティブ(青色?)になってません
(本当は今回なら3列あるので1行目の3列目まですべてアクティブになっておきたい。)
そしてキーボードの矢印キーで動かすには全行アクティブで動きますが、マウスで
動かすとやはり一列目しかアクティブにならず・・・というか2,3列目が一瞬アクティブになり
また戻されると言った感じです。

もしどなたかこの解決法がおわかりの方がいれば教えてください。
私の作りかけのソースも書いておきますのでここにこれを書けば良いとかこれを直せば等
具体的なことを教えていただけると嬉しいです。
またそれはできなくても簡単な例文で書いていただけるのも嬉しいです。
是非お願いします。  

#最後に長文で申し訳ありません。


Global g_row as integer
'***********************************************************
' プロシージャ名:GRID_EnterCell
' 機能      :   カーソルキー移動時制御
' 機能説明  :   選択範囲外にカーソルが移った時元の位置に戻す。
'
' 変更履歴  :
'
'***********************************************************

Private Sub GRID_EnterCell()

    Dim rowset As Integer
    rowset = g_row
    If 5 <= GRID.Row Then
    
        GRID.Row = rowset         '移動後の選択行情報を確保
        GRID.RowSel = rowset
        g_row = rowset
   
    End If
    
End Sub

'***********************************************************
' プロシージャ名:GRID_LeaveCell
' 機能      :   カーソルキー移動時制御

' 機能説明  :   選択範囲外にカーソルが移った時元の位置に戻す。
'
' 変更履歴  :
'
'***********************************************************

Private Sub GRID_LeaveCell()

    If GRID.Row <= 5 Then
        g_row = GRID.Row       '移動する前の選択されていた行情報を確保
    End If
End Sub

'***********************************************************
' プロシージャ名:GRID_MouseDown
' 機能      :   カーソルキー移動時制御
'
' 機能説明  :   選択範囲外にカーソルが移った時元の位置に戻す。
'
' 変更履歴  :
'
'***********************************************************

Private Sub GRID_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If GRID.Row <= 5 Then
        g_row = GRID.Row
    End If

End Sub

'***********************************************************
' プロシージャ名:GRID_MouseUp
' 機能      :   カーソルキー移動時制御
'
' 機能説明  :   選択範囲外にカーソルが移った時元の位置に戻す。
'
' 変更履歴  :
'
'***********************************************************

Private Sub GRID_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim rowset  As Integer
    rowset = g_row
    If GRID.Row <= 5 Then
        GRID.Row = rowset

        g_row = rowset
    End If


End Sub

'***********************************************************
' プロシージャ名:GRID_SelChange
' 機能      :   カーソルキー移動時制御
' 機能説明  :   選択範囲外にカーソルが移った時元の位置に戻す。
'
' 変更履歴  :
'
'***********************************************************

Private Sub GRID_SelChange()
    Dim rowset  As Integer
    rowset = g_row
    If 5 <= GRID.Row Then               '境界行(5.6行目)が2行選択状態になるので
        GRID.Row = rowset        '制御してならないように
        GRID.RowSel = rowset
        g_row = rowset
    ElseIf 5 <= GRID.RowSel Then
        GRID.RowSel = rowset
        g_row = rowset
    End If

End Sub
このページと関連する記事:
#1698-0MSHFlexGirdのMouseRowについて2001-11-16(金) 18:19
#1698-3MSHFlexGirdのMouseRowについて2001-11-16(金) 09:19
#45556-0フレキシブルコントロールでの行選択2001-08-01(水) 18:37
#5617-0RE#5606:立地エディット2000-02-04(金) 18:43
#6529-0マウスの座標を出すプログラム2000-03-09(木) 13:35
#4876-0RE#4869:簡単な表計算ソフト1999-12-06(月) 15:18
#138-0移動中のフォーム表示1999-07-21(水) 16:00
#5318-0エディットモードのやりかた1999-09-17(金) 08:13
#114-2フレキシブルグリッドコントロールをクリックしたときのイベントについて2003-07-29(火) 23:54
#30870-0Formが非アクティブ時の処理について…2000-09-30(土) 15:44
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)