[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/11/22(Tue) 16:19
投稿者名:Kシステム
Eメール:
URL :
タイトル:
Msfelxgridでの右クリックメニュー
現在Msfelxgridで下記のように右クリックメニューを出しています。

Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
    If Button = vbRightButton Then
        Me.PopupMenu mnu1
    End If
End Sub

しかし、右クリックメニューは正常に出るのですが、別の場所を右クリックしても表示が
更新されません。何かのコントロールを一度クリックして解除しています。
色々なソフトを見ますと、右クリックするたびにその場所に再度ポップメニュー
が表示されるのが普通ですが、どのようにしたらよいのでしょうか?
何かの設定が必要なのでしょうか?

投稿時間:2005/11/22(Tue) 17:05
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: Msfelxgridでの右クリックメニュー
テキストボックスでも同様かと思うのですが? 下記の3行を追加してみては。
MSFlexGrid1.Enabled = False
MSFlexGrid1.Enabled = True
MSFlexGrid1.SetFocus

投稿時間:2005/11/23(Wed) 14:20
投稿者名:Kシステム
Eメール:
URL :
タイトル:
Re^2: Msfelxgridでの右クリックメニュー
> テキストボックスでも同様かと思うのですが? 下記の3行を追加してみては。
> MSFlexGrid1.Enabled = False
> MSFlexGrid1.Enabled = True
> MSFlexGrid1.SetFocus

ご回答有難う御座います。
> テキストボックスでも同様かと
理解力不足でよくわかりません。

ところで
上記の3行を追加しましたが上手くいきません。同じプロシージャ内の色々な所に追加
してみましたが、ダメなのでマウスアップイベントやマウスムーブイベントにも記述
したりしましたがダメでした。上記の3行は具体的に何処に記述したらよいのでしょうか?
また3行はそのまま続けて記述するのでしょうか?宜しくお願いします。

投稿時間:2005/11/23(Wed) 15:51
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: Msfelxgridでの右クリック(追記)
失礼しました。
私の勘違いでした。
ヘルプを見る限り仕様のようですね。
ショートカットメニューを閉じるまで他のイベントが発生しないので.....。
フレームにラベルでも貼り付けて代用する位しか思いつきません。

Private Sub Label1_Click()
    Frame1.Visible = False
End Sub
Private Sub MSFlexGrid1_MouseDown(Button As Integer, _
                                  Shift As Integer, x As Single, y As Single)
    Frame1.Visible = False
    If Button = vbRightButton Then
        Frame1.Move x + 500, y, 1800, 1000
        Frame1.Visible = True
    End If
End Sub

ひょっとして、APIを使えば実現できるかも知れません。
(これも難しそう)

投稿時間:2005/11/23(Wed) 23:08
投稿者名:Kシステム
Eメール:
URL :
タイトル:
有難う御座いました
> 失礼しました。
> 私の勘違いでした。
> ヘルプを見る限り仕様のようですね。
> ショートカットメニューを閉じるまで他のイベントが発生しないので.....。
なるほどそういうことなのですか。とりあえず納得しました。

> フレームにラベルでも貼り付けて代用する位しか思いつきません。
>
> Private Sub Label1_Click()
>     Frame1.Visible = False
> End Sub
> Private Sub MSFlexGrid1_MouseDown(Button As Integer, _
>                                   Shift As Integer, x As Single, y As Single)
>     Frame1.Visible = False
>     If Button = vbRightButton Then
>         Frame1.Move x + 500, y, 1800, 1000
>         Frame1.Visible = True
>     End If
> End Sub
代案まだ試していませんが、有難う御座います。

> ひょっとして、APIを使えば実現できるかも知れません。
> (これも難しそう)
そうですね、普通のやり方ではないみたいですね。

親切に有難う御座いました。