Какова цель метода Paint () против события _Paint () в форме Win? - PullRequest
0 голосов
/ 10 апреля 2009

Я работаю с приложением WinForm, которое было разработано предыдущим, теперь недоступным, разработчиком. В этом приложении фермы встроены в TabControls через некоторый пользовательский код. Мой вопрос: может ли кто-нибудь помочь попытаться объяснить, почему в каждой форме есть специальная функция _Paint (), которая вызывается из события Load для этой формы.

Этот метод Paint () на самом деле не привязан к форме за пределами ранее указанного последовательного соединения. Какой цели это может служить? В приведенном ниже коде вы заметите, что я создал событие Paint () и переместил туда часть кода, и все по-прежнему кажется «персиковым».

Может кто-нибудь помочь мне понять это? Это просто из-за публичного объявления на заказное?

        private void frmWWCModuleHost_Load(object sender, EventArgs e)
    {
        FormPaint();
    }

    public void FormPaint()
    {
        WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, new FrmCaseNotes());
        WinFormCustomHandling.ShowFormInContainerControl(tpgMCP, _frmWWCMCPHost);
        WinFormCustomHandling.ShowFormInContainerControl(tpgMember, _frmWWCMemberHost);
        WinFormCustomHandling.ShowFormInContainerControl(tpgEnrollment, _frmWWCEnrollmentHost);
        WinFormCustomHandling.ShowFormInContainerControl(tpgWWCSearch,_frmWWCSearch);
        WinFormCustomHandling.ShowFormInContainerControl(tpgAudit, FrmAudit);

        // Call each top-Level (visible) tabpage's form FormPaint()
        _frmWWCMCPHost.FormPaint();
    }

    private void FrmModuleHost_Paint(object sender, PaintEventArgs e)
    {
        new psTabRenderer(tclWWCModuleHost, Color.LightSteelBlue, Color.Tomato, Color.Black, Color.Black);
    }

Ответы [ 2 ]

1 голос
/ 10 апреля 2009

Код выглядит странно, конечно, но я думаю, что вы читаете больше имени метода FormPaint, чем должны. Мне кажется, это просто процедура инициализации, по сути не имеющая ничего общего с событием Paint (кроме имени).

Кроме того, похоже, что любой код внутри FormPaint вызывается один раз для формы, тогда как любой код в обработчике событий Paint вызывается ... много.

1 голос
/ 10 апреля 2009

Я не уверен, что вы опубликовали достаточно кода, чтобы он был понятен. Но в целом, если вы чувствуете, что код неестественный, продолжайте и рефакторинг ... один шаг за раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...