1. C# / Говнокод #9647

    +106

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private void ReferenceButton_Click(object sender, EventArgs e)
            {
                this.ContentBox.Controls.Remove(this.BooksPanel);
                this.ContentBox.Controls.Remove(this.LogoPanel);
                this.ContentBox.Controls.Remove(this.SearchPanel);
                this.ContentBox.Controls.Add(this.FAQPanel);
            }

    Удаляем старые контролы таким образом)
    Почти в 100% случаев найдется умник, который назовет любой код - говном.

    Запостил: Govnisti_Diavol, 11 Марта 2012

    Комментарии (22) RSS

    • не так уж и плохо.но и подход не из лучших.
      Ответить
      • Не так уж и плохо?
        А давайте угадаем, что будет при повторном щелчке на ReferenceButton?
        От него-то никто не отписывался, и проверок никаких нет.
        Тут - полный набор спецэффектов - попытка удаления несуществующих более контролов, повторного добавления FAQPanel.
        Да и вообще - на самом деле некрасивый и негибкий подход к построению интерфейса.
        Ответить
        • Да, единственное спасение от такой беды - это если ReferenceButton валяется где-нибудь на удаляемых BooksPanel или SearchPanel.
          Но даже в этом случае код - говно.
          Ответить
        • Ну, по документации - Add из старого контейнера автоматически удаляет, Remove исключений не бросает... так что, вроде бы, наружу вонять, по крайней мере, не будет.
          Use QStackedWidget, Lu... oh shi-.
          Ответить
    • Удивило описание ГК. Т.е. ТС не считает код говном, но все же запостил на говнокоде. Для инспекции что ли? Ну, тогда вот мой ответ: код - ГОВНО. Метод не говорящий, по имени понятно когда вызывается, но не понятно зачем. Следует создать метод с правильным названием, принимающий на вход Controls. Будет лучше. А чтобы стало еще лучше, надо сразу в дизайнере создать разные окна: одно для FaqPanel, другое - для остальных контролов из примера.
      Ответить
      • Спасибо за совет, прими во внимание!
        "Для инспекции что ли?" - да, для нее =]
        Ответить
    • Та самая кнопка «Далее» ?
      Ответить
      • Нет, это не далее.
        Эта кнопка убирает:
        - BooksPanel;
        - LogoPanel;
        - SearchPanel;

        И за место этих вероятных компонентов, рисует новый - FAQPanel.

        Знаю, что способов сделать лучше - огромное множество, но пока, увы - так.
        От нехватки знаний и навыков, а также - практики.
        Ответить
    • > Почти в 100% случаев найдется умник, который назовет любой код - говном.
      Здесь дело не в коде, а в кодерах :-P
      typical-c-sharp-user.cs
      Ответить
      • Ну да, я "говнокодер", признаюсь.
        Виноват, исправлюсь.

        PS//
        Я даже NickName себе сделал подходящий =]
        Надеюсь, что конца 9 класса научусь писать на C# "кошерно", уж больно мне нравится этот язык, хотя по умениям я еще и далек от него на расстояние пушечного выстрела.
        Ответить
        • Надо быть начеку! Майкрософт в любой момент может выдумать что-нибудь ему на замену :-)

          Может tab control таки заюзать?
          Ответить
          • Может быть и надо, но я бы хотел последовательно изучить все компоненты среды .NET, тем более их там большое множество.
            До TabControl еще не дошел.
            Когда "открываешь" для себя новый компонент для GUI - это небольшое счастье, которое дает тебе новые возможности в построении пользовательского интерфейса (огромное количество собственных методов и функциональных возможностей - на это уходит время, и не малое, наверное позже, когда наберусь знаний - перестану "говнокодить")!

            =]
            Ответить
        • >Надеюсь, что конца 9 класса научусь писать на C# "кошерно"
          Хех. Главное циклы пореже используй - Майкрософт сейчас отходит от них.
          Ответить
          • А циклы нужны только там, где требуется высокая производительность. Там где нужна скорость разработки и читабельность - циклы не нужны. Уже давным давно юзаю STL-алгоритмы и функции High Order Functions.
            Ответить
          • Спасибо за совет =]
            А какая альтернатива циклам?
            Ответить
    • Вот еще кусок "говнокода", наверное.
      Создаем новую форму... Мне уже сказали, что необходимо передать элементу право на управлении, и что лучше делать новые формы в MDI контейнере с привязкой к родителю.

      private void _REGISTRATION_Click(object sender, EventArgs e)
       {RegForm _RegForm = new RegForm();_RegForm.Show();}
      Ответить
    • в уши долбитесь?
      Ответить

    Добавить комментарий