|
1 / 1 / 0
Регистрация: 13.02.2020
Сообщений: 21
|
|||||||||||||||||||||
System.IndexOutOfRangeException: "Индексу -1 не присвоено значение"14.06.2023, 09:51. Показов 1632. Ответов 15
Метки нет (Все метки)
Моя проблема заключается в следующем- при запуске программы, изначально, я могу нажимать на заголовки столбцов в flightsDataGridView , но стоит добавить новую строчку, так все летит и возникает ошибка - "System.IndexOutOfRangeException: "Индексу -1 не присвоено значение."". У меня есть еще одна форма, где есть resultDataGridView, который берет информацию из flightsDataGridView и в нем ошибок нет, очень прошу помочь в решении проблемы, поставила меня в тупик
![]() Код Form1:
flightsDataGridView.DataSource = flights; из addButton, то такой ошибки не возникает и вторая форма работает корректно, но не отображаются значения в flightsDataGridView Добавлено через 2 минуты Вот еще коды файлов Flight.cs:
0
|
|||||||||||||||||||||
| 14.06.2023, 09:51 | |
|
Ответы с готовыми решениями:
15
Индексу -1 не присвоено значение Ошибка "Индексу не присвоено значение" при удалении из DataGridView
|
|
1 / 1 / 0
Регистрация: 13.02.2020
Сообщений: 21
|
|
| 14.06.2023, 10:34 [ТС] | |
|
Я не силен в c#, пытался сам решить проблему, но ничего не получилось, уже 2 сутки пытаюсь все реализовать
0
|
|
|
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
|
|
| 14.06.2023, 10:45 | |
|
Arthas2324, вы неправильно работаете с DataGridView.DataSource. Нужно один раз привязать коллекцию к этому свойству, настроить колонки и всё. Далее все новые данные будут отображаться в таблице автоматически.
Ну а по вашей ошибке - покажите, в какой строке кода возникает, так как искать по всему коду - занятие так себе.
0
|
|
|
1 / 1 / 0
Регистрация: 13.02.2020
Сообщений: 21
|
||||||
| 14.06.2023, 11:18 [ТС] | ||||||
|
John Prick, Visual studio подчеркивает эту строчку Application.Run(new Form1()); и пишет ошибку к ней System.IndexOutOfRangeException: "Индексу -1 не присвоено значение."
Эта строчка находится в :
John Prick, чуть выше изложена ошибка и где она возникает
0
|
||||||
|
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
|
||
| 14.06.2023, 11:28 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 13.02.2020
Сообщений: 21
|
|
| 14.06.2023, 12:02 [ТС] | |
|
John Prick
Стек вызова прикрепил в jpg. Вот еще подробности, которые выдает visual studio: System.IndexOutOfRangeException HResult=0x80131508 Сообщение = Индексу -1 не присвоено значение. Источник = System.Windows.Forms Трассировка стека: at System.Windows.Forms.CurrencyManager.get _Item(Int32 index) at System.Windows.Forms.CurrencyManager.get _Current() at System.Windows.Forms.DataGridView.DataGr idViewDataConnection.OnRowEnter(DataGrid ViewCellEventArgs e) at System.Windows.Forms.DataGridView.OnRowE nter(DataGridViewCell& dataGridViewCell, Int32 columnIndex, Int32 rowIndex, Boolean canCreateNewRow, Boolean validationFailureOccurred) at System.Windows.Forms.DataGridView.SetCur rentCellAddressCore(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick) at System.Windows.Forms.DataGridView.OnCell MouseDown(HitTestInfo hti, Boolean isShiftDown, Boolean isControlDown) at System.Windows.Forms.DataGridView.OnCell MouseDown(DataGridViewCellMouseEventArgs e) at System.Windows.Forms.DataGridView.OnMous eDown(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseDown (Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Mes sage& m) at System.Windows.Forms.DataGridView.WndPro c(Message& m) at System.Windows.Forms.Control.ControlNati veWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNati veWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Debugg ableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods .DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.Compone ntManager.System.Windows.Forms.UnsafeNat iveMethods.IMsoComponentManager.FPushMes sageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadC ontext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadC ontext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(For m mainForm) at ekz_sim_4.Program.Main() in C:\Users\egorr\OneDrive\Рабочий стол\Серафим_мп\ekz_sim_14 (попытка)\ekz_sim_4\Program.cs:line 19
0
|
|
|
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
|
||||||
| 14.06.2023, 12:25 | ||||||
|
Arthas2324, попробуйте так:
0
|
||||||
|
1 / 1 / 0
Регистрация: 13.02.2020
Сообщений: 21
|
|
| 14.06.2023, 12:46 [ТС] | |
|
John Prick
Все равно выдает эту ошибку: System.IndexOutOfRangeException HResult=0x80131508 Сообщение = Индексу -1 не присвоено значение. Источник = System.Windows.Forms Трассировка стека: at System.Windows.Forms.CurrencyManager.get _Item(Int32 index) at System.Windows.Forms.CurrencyManager.get _Current() at System.Windows.Forms.DataGridView.DataGr idViewDataConnection.OnRowEnter(DataGrid ViewCellEventArgs e) at System.Windows.Forms.DataGridView.OnRowE nter(DataGridViewCell& dataGridViewCell, Int32 columnIndex, Int32 rowIndex, Boolean canCreateNewRow, Boolean validationFailureOccurred) at System.Windows.Forms.DataGridView.SetCur rentCellAddressCore(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick) at System.Windows.Forms.DataGridView.OnCell MouseDown(HitTestInfo hti, Boolean isShiftDown, Boolean isControlDown) at System.Windows.Forms.DataGridView.OnCell MouseDown(DataGridViewCellMouseEventArgs e) at System.Windows.Forms.DataGridView.OnMous eDown(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseDown (Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Mes sage& m) at System.Windows.Forms.DataGridView.WndPro c(Message& m) at System.Windows.Forms.Control.ControlNati veWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNati veWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Debugg ableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods .DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.Compone ntManager.System.Windows.Forms.UnsafeNat iveMethods.IMsoComponentManager.FPushMes sageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadC ontext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadC ontext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(For m mainForm) at ekz_sim_4.Program.Main() in C:\Users\egorr\OneDrive\Рабочий стол\Серафим_мп\ekz_sim_14 (попытка)\ekz_sim_4\Program.cs:line 19
0
|
|
|
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
|
|
| 14.06.2023, 12:48 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 13.02.2020
Сообщений: 21
|
||||||
| 14.06.2023, 13:33 [ТС] | ||||||
|
John Prick
То же самое : System.IndexOutOfRangeException HResult=0x80131508 Сообщение = Индексу -1 не присвоено значение. Источник = System.Windows.Forms Трассировка стека: at System.Windows.Forms.CurrencyManager.get _Item(Int32 index) at System.Windows.Forms.CurrencyManager.get _Current() at System.Windows.Forms.DataGridView.DataGr idViewDataConnection.OnRowEnter(DataGrid ViewCellEventArgs e) at System.Windows.Forms.DataGridView.OnRowE nter(DataGridViewCell& dataGridViewCell, Int32 columnIndex, Int32 rowIndex, Boolean canCreateNewRow, Boolean validationFailureOccurred) at System.Windows.Forms.DataGridView.SetCur rentCellAddressCore(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick) at System.Windows.Forms.DataGridView.SetAnd SelectCurrentCellAddress(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick, Boolean clearSelection, Boolean forceCurrentCellSelection) at System.Windows.Forms.DataGridView.MakeFi rstDisplayedCellCurrentCell(Boolean includeNewRow) at System.Windows.Forms.DataGridView.OnCell MouseDown(DataGridViewCellMouseEventArgs e) at System.Windows.Forms.DataGridView.OnMous eDown(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseDown (Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Mes sage& m) at System.Windows.Forms.DataGridView.WndPro c(Message& m) at System.Windows.Forms.Control.ControlNati veWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNati veWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Debugg ableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods .DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.Compone ntManager.System.Windows.Forms.UnsafeNat iveMethods.IMsoComponentManager.FPushMes sageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadC ontext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadC ontext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(For m mainForm) at ekz_sim_4.Program.Main() in C:\Users\egorr\OneDrive\Рабочий стол\Серафим_мп\ekz_sim_14 (попытка)\ekz_sim_4\Program.cs:line 19 Пишет исключение не обработано, ошибка - System.IndexOutOfRangeException: "Индексу -1 не присвоено значение." Код закометил:
John Prick Я могу прислать вам исходный файл, чтобы вам было удобнее просмотреть его
0
|
||||||
|
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
|
|
| 14.06.2023, 13:36 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 13.02.2020
Сообщений: 21
|
|
| 14.06.2023, 13:44 [ТС] | |
|
John Prick Заранее огромное спасибо, просто сам уже зашел в тупик с этой проблемой
0
|
|
| 14.06.2023, 14:21 | |||||||||||
|
Может так сделать?
Кликните здесь для просмотра всего текста
Добавлено через 2 минуты Кнопка btnSaveFlight это кнопка редактирования. Добавлено через 3 минуты Изменённый класс Flight
0
|
|||||||||||
|
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
|
|||||||
| 14.06.2023, 14:24 | |||||||
Сообщение было отмечено Arthas2324 как решение
Решение
Arthas2324, в общем, проблема именно в том что вы
Но ещё лучше - почитайте как правильно использовать DataSource с объектами типа BindingSource или DataTable. И примените у себя.
1
|
|||||||
|
1 / 1 / 0
Регистрация: 13.02.2020
Сообщений: 21
|
|
| 14.06.2023, 17:32 [ТС] | |
|
John Prick Огромное вам спасибо, вы меня очень выручили
Добавлено через 2 часа 43 минуты John Prick Извини, мне еще нужна небольшая помощь, я хочу сделать так, чтобы колонки автоматически занимали все доступное место в datagridview, независимо от информации в них, а если тест будет превышать ширину колонки, то она должна удлиняться, попытался сам это реализовать, но никак не выходит public Form1() { destinationCounts = new Dictionary<string, int>(); flights = new List<Flight>(); InitializeComponent(); flightsDataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; passengerCountTextBox.MaxLength = 4; flightsDataGridView.ReadOnly = true; this.AutoSize = true; // Устанавливаем AutoSizeMode на GrowAndShrink this.AutoSizeMode = AutoSizeMode.GrowAndShrink; pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; pictureBox1.Image = Image.FromFile(@"C:\Users\egorr\OneDrive \Рабочий стол\Серафим_мп\ekz_sim_14\Аэрофлот.jpg" ); // Установить запрет на изменение ширины столбцов flightsDataGridView.AllowUserToResizeCol umns = false; // Установить запрет на изменение высоты строк flightsDataGridView.AllowUserToResizeRow s = false; flightsDataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells ; flightsDataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; flightsDataGridView.DefaultCellStyle.Wra pMode = DataGridViewTriState.True; }
0
|
|
| 14.06.2023, 17:32 | |
|
Помогаю со студенческими работами здесь
16
System.IndexOutOfRangeException Index was outside the bounds of the array System.IndexOutOfRangeException: Index was outside the bounds of the array Ошибка: "Индексу -1 не присвоено значение" при выделении ячейки DataGridView System.IndexOutOfRangeException System.IndexOutOfRangeException Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|