У меня есть приложение, которое открывает несколько форм в зависимости от потребностей пользователя. Когда главное окно вновь приобретает фокус, я должен знать, чтобы я мог обновить показанные данные, чтобы отразить любые изменения, сделанные другими формами.
До сих пор я пробовал Form.GotFocus , Form.Enter и Form.Activation . Кажется, что они стреляют только тогда, когда форма впервые получает фокус. Если другая форма создается и затем закрывается или просто теряет фокус, главное окно не знает, что оно вернуло фокус, и поэтому данные не обновляются.
private void frmDashboardV3_Load(object sender, EventArgs e)
{
this.Enter += frmDashboardV3_RefreshCurrentTabPage;
//this.GotFocus += frmDashboardV3_RefreshCurrentTabPage;
//this.Activated += frmDashBoardV3_RefreshCurrentTabPage;
}
В основном, когда основное окно восстанавливает фокус, естьдолжно быть событие, к которому я могу подключить свой код, чтобы он обновлял содержимое. Я нигде не могу найти ответ.
РЕДАКТИРОВАТЬ
Я также пытался связать данные, но, возможно, я делаю это неправильно. Вот сокращенная версия кода в виде
partial class frmDashboardV3 : Form
{
private BCCPerUserTableAdapter bccPerUserTableAdapter;
private DataSet3.BCCPerUserDataTable bccDataTable = new trimlineDataSet3.BCCPerUserDataTable();
private void frmDashboardV3_Load(object sender, EventArgs e)
{
bccPerUserTableAdapter = new BCCPerUserTableAdapter();
}
private void tabPageBCC_Enter(object sender, EventArgs e)
{
bccPerUserTableAdapter.Fill(bccDataTable, new int?(Global.IDEmploye));
this.bccPerUserBindingSource.DataSource = (object)bccDataTable;
this.dgvBCC.DataSource = bccPerUserBindingSource;
this.dgvBCC.Refresh();
}
}
Есть понимание, что я делаю неправильно? Данные отображаются, но не будут обновляться, если я не переключусь на другую вкладку, а затем вернусь к этой. Это именно тот шаг, который я пытаюсь помешать пользователю сделать.
Кстати, я использую MySQL.