Ошибка InvalidArgument=Значение '1' недопустимо для 'index'

486
06 апреля 2017, 16:33

Есть кнопка "Данные процесса" которая выводит ID процесса, время запуска и юзер тайм.В лист боксе все работало нормально, я сменил лист бокс на list view и эта кнопка полетела. Вот ошибка

! System.ArgumentOutOfRangeException не обработано HResult=-2146233086 Message=InvalidArgument=Значение '1' недопустимо для 'index'. Имя параметра: index Source=System.Windows.Forms ParamName=index

Код

private void button3_Click(object sender, EventArgs e) {
  Process[] task = Process.GetProcesses();
  foreach (Process proc in task) 
  { // В этой строке ошибка -     
    if (LstProc.SelectedIndices[1].ToString() == proc.ProcessName)
    {
      string temp = string.Empty;
      temp += "ID Процесса:" + proc.Id.ToString();
      temp += "\nПользовательское время :" + proc.UserProcessorTime.ToString();
      temp += "\nЗапущенно в:" + proc.StartTime.ToString();  
      MessageBox.Show(temp, "Данные о процессе");
      break;
    }
  }
}
Answer 1

Данный код выводит сообщение о процессе и без проверки, правда только о 1 процессе

        Process[] task = Process.GetProcesses();
        foreach (Process proc in task)
        { 
                {
                    string temp = string.Empty;
                    temp += "ID Процесса:" + proc.Id.ToString();
                    temp += "\nПользовательское время :" + proc.UserProcessorTime.ToString();
                    temp += "\nЗапущенно в:" + proc.StartTime.ToString();
                    MessageBox.Show(temp, "Данные о процессе");
                    break;
                }
        }

Я вижу такой вариант. Выбираем процесс в списке, нажимаем на кнопку. получаем сообщение о процессе

        Process[] task = Process.GetProcesses();
        foreach (Process proc in task)
        {
            if(LstProc.Items[LstProc.SelectedIndices[0]].Text == proc.ProcessName)
                {
                    Debug.WriteLine("-------------------"+LstProc.SelectedIndices.Count);
                    string temp = string.Empty;
                    temp += "ID Процесса:" + proc.Id.ToString();
                    temp += "\nПользовательское время :" + proc.UserProcessorTime.ToString();
                    temp += "\nЗапущенно в:" + proc.StartTime.ToString();
                    temp += "Имя: " + proc.ProcessName;
                    MessageBox.Show(temp, "Данные о процессе");
                    break;
                }
        }
READ ALSO
C# listview groping разделители столбцов

C# listview groping разделители столбцов

При группировке в listview пропадают разделители столбцов, остаются только в заголовкахГуглил, не помогло, понял только что их можно как то нарисовать,...

270
Sitemap по введенному пользователем url

Sitemap по введенному пользователем url

Здравствуйте, у меня есть страничка с текстовым полем куда пользователь вводит url после нажатия кнопки я хочу построить sitemap исходя из этого...

208
Масштабирование в компоненте webBrowser

Масштабирование в компоненте webBrowser

Как масштабировать размер содержимого в компоненте webBrowser1 выбирая уже заготовленные варианты масштаба в виде "25%", "50%", "100%", "150%", "200%" через...

285