我正在尝试创建一个程序来运行在ListView中选择的特定应用程序。我的应用程序中有一个名为SoftView的ListView,DoubleClick事件的代码如下:
private void SoftView_DoubleClick(object sender, EventArgs e)
{
...
if (SoftView.Items[SoftView.SelectedIndices[0]].SubItems[0].Text == "Application name")
{
...
-- Run selected application --
Application.Exit();
}
}
执行时,我有以下例外:
System.ArgumentOutOfRangeException:参数超出范围。
参数名称:index
在System.Windows.Forms.ListView + SelectedIndexCollection.get_Item(Int32 index)[0x00000]
在Launcher.MainForm.SoftView_DoubleClick(System.Object sender,System.EventArgs e)[0x00000]
在System.Windows.Forms.Control.OnDoubleClick(System.EventArgs e)[0x00000]
在System.Windows.Forms.ListView + ItemControl.HandleClicks(System.Windows.Forms.MouseEventArgs me)[0x00000]
在System.Windows.Forms.ListView + ItemControl.ItemsMouseUp(System.Object sender,System.Windows.Forms.MouseEventArgs me)[0x00000]
在System.Windows.Forms.Control.OnMouseUp(System.Windows.Forms.MouseEventArgs e)[0x00000]
在System.Windows.Forms.Control.WmLButtonUp(System.Windows.Forms.Message& m)[0x00000]
在System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message& m)[0x00000]
在System.Windows.Forms.ListView + ItemControl.WndProc(System.Windows.Forms.Message& m)[0x00000]
在System.Windows.Forms.Control + ControlWindowTarget.OnMessage(System.Windows.Forms.Message& m)[0x00000]
在System.Windows.Forms.Control + ControlNativeWindow.WndProc(System.Windows.Forms.Message& m)[0x00000]
在System.Windows.Forms.NativeWindow.WndProc(IntPtr hWnd,Msg msg,IntPtr wParam,IntPtr lParam)[0x00000]
有谁知道如何解决这个问题? 提前谢谢。
答案 0 :(得分:1)
双击
时,没有选定的索引 SoftView.SelectedIndices
为空。所以SoftView.SelectedIndices[0]
会抛出异常。
修复可能是这样的:
if (SoftView.Items.Count == 0)
return;
if (SoftView.SelectedIndices.Count == 0)
return;
if (SoftView.Items[SoftView.SelectedIndices[0]].SubItems[0].Text == "Application name")
...