В настоящее время я разрабатываю службу подписки на публикации WCF для моего издателя asp.net и подписчика приложения windows form.
Для приложения формы Windows я бы использовал панель макета потока для генерации списка панелей (уведомлений) для моего приложения.Когда издатель (приложение asp.net) публикует сообщение в службе, каждый подписчик сможет получать информацию и соответствующим образом обновлять свои панели.Что касается моей панели Flowlayout, у меня есть ComboBox для фильтрации типов уведомлений, в основном типа 1 и 2.
код для предупреждения ComboBox
private void comboAlertType_SelectedIndexChanged(object sender, EventArgs e)
{
flowLayoutForAlert.Dispose();
populateList();
if (comboAlertType.SelectedIndex == 0)
{
flowLayoutForAlert = createFlowLayoutPanel(1);
}
else if (comboAlertType.SelectedIndex == 1)
{
flowLayoutForAlert = createFlowLayoutPanel(2);
}
else
{
flowLayoutForAlert = createFlowLayoutPanel(3);
}
this.Controls.Add(flowLayoutForAlert);
}
createFlowlayoutpanel (#)просто метод для меня, чтобы создать панели.Целое число внутри обозначает тип показанных панелей, в основном 1 для каждой отдельной панели, 2 для важных и 3 для обычных.
для моего метода обратного вызова PostReceived () для службы wcf, у меня есть следующееcode
public void PostReceived(String alertId)
{
backgroundForm b = (backgroundForm) Application.OpenForms[0];
b.BeginInvoke((MethodInvoker)delegate()
{
b.getMainFormObject().lblSearch.Text = "lakjslkaja";
b.getSettingsFormObject().player.Play();
b.getMainFormObject().notificationList.Add(new notificationForm("", "", "", "", "", "", 1, 1));
b.getMainFormObject().populateList();
b.getMainFormObject().mainFormLoad();
});
}
код mainFormLoad:
public void mainFormTesting()
{
notificationForm tempForm = (notificationForm)notificationList[0];
tempForm.Show();
flowLayoutForAlert = createFlowLayoutPanel(1);
this.Controls.Add(flowLayoutForAlert);
}
, когда я впервые запускаю приложение, фильтр предупреждений в выпадающем списке работает для начального количества панелей, но когда я публикую публикациюи приложение получает сообщение, оно как бы запутывает функцию фильтра поля со списком.
Кто-нибудь может решить эту проблему?