Здравтсвуйте !
Если коротко, то наблюдается странное поведение забинденых контролов в MdiChild окнах. Если не сложно, попробуйте воспроизвести это дело, и может дадите какой-нибудь совет.
Здесь полный код тестового приложения.
Итак, как воспроизвести.
1. Создаём проект C# Windows Forms Application, добавляем в него ещё одну форму Form2.
2. В Form1 устанавливаем IsMdiContainer = true. Добавляем MainMenu, в него Добавляем один (это не важно) айтем. Пишем в обработчике OnClick этого айтема.
Form2 f = new Form2();
f.MdiParent = this;
f.Show();
3. Идёт в дизайнер Form2. Добавляем Untyped DataSet, в него добавляем одну таблицу, в неё две колонки. На форму кидаем 2 текстбокса, биндим их к 1-й и второй колонке соответственно.
4. Пишем для Form2 обработчик на событие Load
DataRow r = dataSet1.Tables[0].NewRow();
dataSet1.Tables[0].Rows.Add(r);
4. Пишем для Form2 обработчик на событие Closing:
dataSet1.Tables[0].Rows[0].EndEdit();
if(MessageBox.Show(this, "???", "", MessageBoxButtons.YesNo)
!=DialogResult.Yes)
{
e.Cancel = true;
}
Теперь как воспроизвести глюк.
Запускаем приложение, тыкаем 4 раза на меню, чтобы появилось 4 формы Form2.
Заполняем последнюю появившуюся форму, закрываем её, говорим "Yes" (или "да").
В активной форме опять заполняем текстбоксы, и пытаемся закрыть её.
Во тут-то, когда вылезает MessageBox, у меня из первого текстбокса пропадает текст.
Что делать ???