- 題名: スプレッドのショートカット
- 日時: 2004/10/05 10:53:59
- ID: 6494
- この記事の返信元:
- (なし)
- この記事への返信:
- [6495] Re[1]: スプレッドのショートカット2004/10/05 11:23:33
- ツリーを表示
■No6494に返信(こたろうさんの記事) > スプレッド2.5を.NETに変換したのですが、ContextMenuプロパティーがありません。 > ショートカットメニューをどのように実現したらよいでしょうか? ショートカットメニューとは、コンテキストメニューという解釈で宜しいでしょうか? Spread 2.5は触ったことがないですが、MouseDown()イベントはありますよね? あるのならば、ContextMenuクラスを使ってやれば良いと思われます。 以下は私のイメージです。 Source:-------------------------------------------------------------------- ' プライベート メンバ として宣言 Private mContextMenu As ContextMenu ' コンストラクタでContextMenuを初期化 Private Sub New() mContextMenu = New ContextMenu() With mContextMenu.MenuItems .Add("切り取り(&T)", AddressOf CutFromMenu) .Add("コピー(&C)" , AddressOf CopyFromMenu) .Add("貼り付け(&T)", AddressOf PasteFromMenu) End With End Sub ' マウスの右ボタンを押下した時にContextMenuを表示 Private Sub Spread1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Spread1.MouseDown If e.Button = MouseButtons.Right Then mContextMenu.Show(Spread1, New Point(e.X, e.Y)) End If End Sub Private Sub CutFromMenu(ByVal sender As Object, ByVal e As EventArgs) '[切り取り(&T)]選択時の処理 End Sub Private Sub CopyFromMenu(ByVal sender As Object, ByVal e As EventArgs) '[コピー(&C)]選択時の処理 End Sub Private Sub PasteFromMenu(ByVal sender As Object, ByVal e As EventArgs) '[貼り付け(&P)]選択時の処理 End Sub ---------------------------------------------------------------------------
■No6497に返信(こたろうさんの記事) > お返事ありがとうございます。 > さっそくやってみたのですが、確かにコンテキストメニューは表示されたのですが、 > 各メニューアイテムのEnableがFalseの状態になってます。 > MenuItem1.enable=Trueとやってみたのですが、だめでした。 それは、Spreadの上だからのような気がしますね。 何も考えずにやれば、 mContextMenu.MenuItem(0).Enabled = True などとする必要はないはずだからです。 残念ながら、私の手元にSpread 2.5がないので何とも言えませんが...。 (Spread は嫌いでしてインストールしたくもなかったりします;) ContextMenuプロパティがないのならば、競合してるとも思えないし。 試しにForm上に実装を変えてみてください。 それでも、メニューがグレーダウンするようだったら、実装方法に問題があるということになりますので。 Source:-------------------------------------------------------------------- ' Formに実装する場合 Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseDown If e.Button = MouseButtons.Right Then mContextMenu.Show(Me, New Point(e.X, e.Y)) End If End Sub --------------------------------------------------------------------------- # 実は、私もContextMenuを触ったのは最近が初めてだったりします < なんて無責任な orz
スプレッド2.5を.NETに変換したのですが、ContextMenuプロパティーがありません。
ショートカットメニューをどのように実現したらよいでしょうか?