2016-10-16 9 views
0

ListBoxにはフルパス、ToolStripMenuには[ファイルを開く]または[ファイルをフォルダに表示]があります。ListBoxを右クリックしてアイテムを選択しないでください

問題は次のとおりです。ListBoxItemを左クリックしてから、右クリックして表示する必要があるファイルを選択してください。
私がこれをしないと、項目が選択されていないので、NullReferenceExceptionが得られます。

右クリックした項目を選択するにはどうすればよいですか?以下のコードは動作しませんが、エラーを与え、私にドキュメントフォルダが表示されないのはなぜ...

Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShowInFolderToolStripMenuItem.Click 
    Try 
     If DirectCast(DirectCast(sender, ToolStripMenuItem).GetCurrentParent, _ 
      ContextMenuStrip).SourceControl.GetType Is GetType(ListBox) Then 

      Shell("explorer /select, " & DirectCast(DirectCast(DirectCast(sender, _ 
        ToolStripMenuItem).GetCurrentParent, ContextMenuStrip).SourceControl, _ 
        ListBox).SelectedItem.ToString, AppWinStyle.NormalFocus) 
     End If 
    Catch ex As Exception 
     MsgBox(ex.ToString) 
    End Try 
End Sub 

ちょうど別の質問:

は、ここに私のコードですか?

Private Sub ListBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseDown 
    Try 
     DirectCast(sender, ListBox).SelectedIndex = DirectCast(sender, ListBox).IndexFromPoint(e.X, e.Y) 
    Catch ex As Exception 
    End Try 
End Sub 
+0

@Plutonixはい、私はこれを知って開始 – Plutonix

+0

で選択した項目があるかどうかをチェックできます。

Process.Start("explorer.exe", "/select" & DirectCast(DirectCast(DirectCast(sender, _ ToolStripMenuItem).GetCurrentParent, ContextMenuStrip).SourceControl, _ ListBox).SelectedItem.ToString) 
genespos

+0

@Plutonix私は解決しましたが、私はまだより良い解決策にオープンしています;) – genespos

答えて

0

は、MouseDownイベントを追加し解決しました。しかし、1番目の項目を選択して3番目の項目を右クリックすると、間違ったファイルが表示される可能性があります。
関連する問題