#c# #winforms #exception #datagridview
#c# #winforms #исключение #datagridview
Вопрос:
У меня есть 1 родительская форма MDI с именем as MainForm
и 2 дочерние формы WorkForm и UserOp
.
WorkForm
имеет, datagridview
который отображает users
, и его datasource
является BindingList
. BindingList
создается из List
of type user
, а список объявлен в родительском и доступен в этом с помощью ссылки, т. е. если я внесу какие-либо изменения в этот список, в конечном итоге это изменит список в родительском. вот код, как это делается.
MainForm mainForm;
public WorkForm(MainForm main)
{
InitializeComponent();
this.mainForm = main;
}
аналогично, доступ к нему осуществляется из UserOp
. теперь, если я удаляю пользователя из списка, а рабочая форма уже открыта, то представление datagrid выдает ошибку по умолчанию, что означает, что я должен обработать DataError
событие.Я снова обновляю BindingList
и снова назначаю его datagrid datasource
.
это устраняет проблему ошибки, но после этого исключение теперь отображается иногда не всегда в program.cs
это происходит, когда после удаления я просто навожу курсор мыши на форму, пока она неактивна, если форма нажата, то исключения нет. которое читается Specified argument was out of the range of valid values.
в строке
Parameter name: e.RowIndex Application.Run(new MainForm());
Ответ №1:
Иногда RowIndex
может быть -1 или даже равно Count/Length
коллекции в событиях.
Вы должны проверить это 🙂