[リストへもどる]
一括表示

投稿時間:2003/07/25(Fri) 16:59
投稿者名:まな
Eメール:
URL :
タイトル:
MSFlexGrid選択について
いつもお世話になります。

MSFlexGridを使用して表の作成を行っているのですが、
行選択時にマウスをドラッグすると、複数行選択されます。
ドラッグしても1行だけ選択させる方法はありますか?

ご存じの方、宜しくお願いします。

投稿時間:2003/07/25(Fri) 18:18
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: MSFlexGrid選択について
MSFlexGrid関係 の MSFlexGrid過去のログ(行列・編集)の中の
No.0652 Re:フレキシブルグリッド複数選択不可  投稿者:ゆう(U) [99/8/20(金)2:26分]
を見て下さい。

次回から質問される場合、掲示板のワード検索やメニューの当サイト内外の検索等で調べて
から質問されるようにお願いします。

投稿時間:2003/07/25(Fri) 18:37
投稿者名:まな
Eメール:
URL :
タイトル:
Re^2: MSFlexGrid選択について
> 次回から質問される場合、掲示板のワード検索やメニューの当サイト内外の検索等で調べて
> から質問されるようにお願いします。
一応探してみたのですが、見当たらなかったのでレスしました。
申し訳ありません。

コメントが入っていないので複雑そうに見えますが、理解しながら参考に
させて頂きます。

有難う御座いました。

投稿時間:2003/07/28(Mon) 12:17
投稿者名:まな
Eメール:
URL :
タイトル:
Re^2: MSFlexGrid選択時のPopupMenu
お世話になります。

過去ログを何とか理解し、流用させて頂きました。有難う御座います。
しかし、マウス右クリック時にPopupMenuを表示していたのですが
できなくなりました。

一応下記の関数に追加下のですが駄目でした。

Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
       ・
       ・
       ・
    If Button = vbLeftButton Then
      blnMouseDown = True
    Else
      PopupMenu Mnu_XXX
    End If
  End With
End Sub

投稿時間:2003/07/28(Mon) 13:50
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: MSFlexGrid選択時のPopupMenu
> Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
>        ・
>        ・
>        ・

   ・の部分で何か別の処理をしていませんか?
試して見ましたが問題なく表示しました。

又は下記のようにイベントの最初に別に記入してみて下さい。
    Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
        If Button = vbRightButton Then
            Form1.PopupMenu Mnu_XXX
        End If

投稿時間:2003/07/28(Mon) 14:17
投稿者名:まな
Eメール:
URL :
タイトル:
Re^4: MSFlexGrid選択時のPopupMenu
ロジックは、過去ログをそのまま使用しています。
下記のように、Topで宣言しても表示されませんでした。
ステップ実行を行っても処理自体入ってくるのですが表示はされません。
どうしてでしょうか?

Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = vbRightButton Then
        PopupMenu Mnu_XXXX
    End If
    With MSFlexGrid1
        If .MouseRow < .FixedRows Then
            If .MouseCol < .FixedCols Then
                .Row = .FixedRows
                .ColSel = .Cols - 1
            End If
        Else
            .Row = .MouseRow
            .ColSel = .Cols - 1
        End If
        If Button = vbLeftButton Then
            g_blnMusDwn = True
        End If
    End With
end Sub

投稿時間:2003/07/28(Mon) 14:39
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: MSFlexGrid選択時のPopupMenu
私が試した場合、問題なく表示されました(どちらのコードでも)

PopupMenu Mnu_XXXX の Mnu_XXXX は間違いなくポップアップメニューの名前なのでしょうか

新たに貼り付けたコードだけのプログラムを作成し、そこで試しても同じですか?

    If Button = vbRightButton Then
        PopupMenu Mnu_XXXX
    End If

ここのIF文の中に入ってきますか?
入ってこないなら、FormのMouseDownイベントで何か処理していませんか?
はいってくるなら、ポップアップメニューそのものに問題ありませんか?

投稿時間:2003/07/28(Mon) 15:36
投稿者名:まな
Eメール:
URL :
タイトル:
Re^6: MSFlexGrid選択時のPopupMenu
原因がわかりました。
親FormのPopupMenuよりvbModalでFormをShowした場合、Showされた画面では
PopupMenuが表示されません。

この時は、どの様にすれば子FormでもPopupMenuを表示させることが出来るのでしょうか?
vbModalでないといけないのですが・・・。

Private Sub Mnu_AAA_Click()
    Form2.Show vbModal, Me
End Sub

投稿時間:2003/07/28(Mon) 17:05
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^7: MSFlexGrid選択時のPopup
> vbModalでないといけないのですが・・・。

Form1 を表示等にして
SetWindowPos APIを使ってトップに表示したのではだめですか?

 

投稿時間:2003/07/28(Mon) 18:48
投稿者名:まな
Eメール:
URL :
タイトル:
Re^8: MSFlexGrid選択時の
> Form1 を表示等にして
> SetWindowPos APIを使ってトップに表示したのではだめですか?
トップ表示にすると他の画面が見えなくなるので駄目ですね。
Interval=1 のTimerを使用すると出来ました。(こんなのでいいのかな〜)

Private Sub Mnu_XXX_Click()
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Form2.Show vbModal, Me
End Sub

色々と有難う御座いました。