■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#8162-0
フレシキルグリッドコントロールで、複数列選択不可?
こんにちは。
題名の動きを実現したいのですが、プロパティにもそれらしき物がみあたりません。
実現したい動作というのが、1つの行を選択し、そのデータを取得しようとしているのですが、
複数列選択できてしまうと、アクティブセルの位置が把握しずらくなってしまうからです。
何か方法がありましたらご教授下さい。
#8168-0
RE#8162:フレシキルグリッドコントロールで、複数列選択不可?
> 実現したい動作というのが、1つの行を選択し、そのデータを取得しようとしているのですが、
> 複数列選択できてしまうと、アクティブセルの位置が把握しずらくなってしまうからです。
> 何か方法がありましたらご教授下さい。
プロパティ1発で何とかなるコントロールではないので、
コードでその様な動きを実現させるしかありません。


キーボード操作だけなら・・・
選択セルの変更で複数行の選択がされた場合に1行選択状態に変更すると
OKです。

マウス操作をも想定するなら・・・
簡単な方法なら、MosueMoveイベントで複数行の選択になった場合、1行
選択状態にするとOKです。
※操作の状況次第ではMosueDown、MouseUpをも使った方が良いですが…

サンプル)
●気になる点は多々ありますが、仕様に合わせて改良して下さい。
 何が気になるかは個人(仕様)の問題ですので・・・

Private Sub Form_Load()
  With MSFlexGrid1
    .FocusRect = flexFocusNone
    .HighLight = flexHighlightAlways
    .SelectionMode = flexSelectionByRow
    .Rows = 10
    .Cols = 5
    .ColSel = .Cols - 1
  End With
End Sub
Private Sub MSFlexGrid1_MouseMove(Button As Integer, _
                                  Shift As Integer, _
                                  X As Single, Y As Single)
  With MSFlexGrid1
    If Button <> vbLeftButton Then Exit Sub
    If .Row = .MouseRow Then Exit Sub
    If .MouseRow < .FixedRows Then
      If .Row = .RowSel Then Exit Sub
      .Row = .RowSel
    Else
      .Row = .MouseRow
    End If
    .ColSel = .Cols - 1
  End With
End Sub
Private Sub MSFlexGrid1_SelChange()
  With MSFlexGrid1
    If .RowSel = .Row Then Exit Sub
    If .MouseRow = .RowSel Then Exit Sub
    If .MouseRow < .FixedRows And .MouseCol < .FixedCols Then
      .RowSel = .Row
    Else
      .Row = .RowSel
    End If
    .ColSel = .Cols - 1
  End With
End Sub
※コメントは書きません、ヘルプ等を参考にして解析して下さい。

●質問の際には環境(OS・VBのバージョン・エディション・SP)も
 しっかり明記する方が良いです・・・
このページと関連する記事:
#6238-0MsFlexGridの固定行2000-02-29(火) 01:07
#18856-0DataGridコントロール2001-02-16(金) 21:00
#5784-0おひさです。またグリッドの質問です。1999-12-17(金) 01:08
#45556-0フレキシブルコントロールでの行選択2001-08-01(水) 18:37
#7041-1文化オリエン○社 スプレットシートVer2.5での動作2002-04-17(水) 12:33
#114-2フレキシブルグリッドコントロールをクリックしたときのイベントについて2003-07-29(火) 23:54
#6914-1データグリッドの複数行選択2002-04-15(月) 01:33
#9036-0リストビュー上でのポップアップメニュー2000-03-27(月) 19:27
#653-2スプレットのイベント2001-10-29(月) 04:54
#6436-0MSFlexGridの日付並べ替え2000-03-06(月) 13:12
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)