none
Перерисовка формы. RRS feed

  • Вопрос

  • У меня такой вопрос :

        Есть ListMain(Форма первая) и есть RegistrationMain(Форма вторая).

    RegistrationMain вызывается из ListMain. Закрываясь RegistrationMain должен обновляать ListMain (С помощью функции RemoveAll (Написан мною)).

     Код я написал как ответ. (Смотрите внизу)


    • Изменено SANOyan 22 сентября 2011 г. 8:09
    22 сентября 2011 г. 8:00

Ответы

  • Добавьте проверки, чтобы быть уверенным:

    1) проверьте сначала, что if (OpenForms > 0)

    2) убедитесь что первая форма является типа ListMain - if (OpenForms[0] is ListMain).

    Эти условия можно объединить в одно:

    if (Application.OpenForms > 0 && Application.OpenForms[0] is ListMain)
    {
     // ..
    }
    else
    {
     // .. ошибка либо индекса, либо типа
    }
    

     


    Для связи [mail]
    • Помечено в качестве ответа SANOyan 22 сентября 2011 г. 13:58
    22 сентября 2011 г. 9:15

Все ответы

  • Я написал так знает ли кто нибудь безопасно ли это.

    //Конструктор RegistrationMain 
    
    {
    
       FormClosed += new FormClosedEventHandler(RefreshListMain);
    
    }
    
    //Функция RefreshListMain
    
    {
    
       ((ListMain)Application.OpenForms[0]).RefreshAll();
    
       //RefreshAll написан мною там все в поряадке 
    
    }
    
    

     

    Я хачу знать не будет ли проблемы с индексом.


    • Изменено SANOyan 22 сентября 2011 г. 8:20
    22 сентября 2011 г. 8:07
  • Добавьте проверки, чтобы быть уверенным:

    1) проверьте сначала, что if (OpenForms > 0)

    2) убедитесь что первая форма является типа ListMain - if (OpenForms[0] is ListMain).

    Эти условия можно объединить в одно:

    if (Application.OpenForms > 0 && Application.OpenForms[0] is ListMain)
    {
     // ..
    }
    else
    {
     // .. ошибка либо индекса, либо типа
    }
    

     


    Для связи [mail]
    • Помечено в качестве ответа SANOyan 22 сентября 2011 г. 13:58
    22 сентября 2011 г. 9:15
  • Спасибо за ответ. Думаю это вполне достаточно.

    Если знаете какая ошибка будит генерироваться напишите. Спасибо.

    22 сентября 2011 г. 13:57
  • Ошибки, т.е. исключения быть не должно. В блок else войдет, если одно из двух условий не выполнится, нужно либо по-новой проверять какое из двух условий не выполняется, либо сразу их разделить и проверять последовательно.


    Для связи [mail]
    22 сентября 2011 г. 14:07