Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 17:28   #1
andrew_jr20
Пользователь
 
Регистрация: 01.06.2011
Сообщений: 53
По умолчанию двойной клик по TabControl

Добрый день
Имеется необходимость отслеживать двойной клик по области заголовков вкладок, но не по самой вкладке. Но такого события нет - есть только клики по самим закладкам. В МСДНе сказано, что при отсутствии вкладок клики не отслеживаются
Цитата:
Объект TabControl должен иметь хотя бы один объект TabPage в своей коллекции TabPages.
Так как всё-таки можно выполнить двойной щелчок вроде того, например, при котором создаётся новая вкладка в Firefox?
andrew_jr20 вне форума Ответить с цитированием
Старый 03.08.2011, 17:53   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

У TabControl без вкладок просто нет области заголовков. Но можно сделать аналог экспресс-панели в Опере (и в Хроме, вроде, тоже) и запретить закрывать её, если она осталась одна.
ds.Dante вне форума Ответить с цитированием
Старый 03.08.2011, 18:12   #3
andrew_jr20
Пользователь
 
Регистрация: 01.06.2011
Сообщений: 53
По умолчанию

Цитата:
Сообщение от ds.Dante Посмотреть сообщение
У TabControl без вкладок просто нет области заголовков. Но можно сделать аналог экспресс-панели в Опере (и в Хроме, вроде, тоже) и запретить закрывать её, если она осталась одна.
Про то, что "без вкладок" - я просто для примера привёл, выписку из мсдн, просто щелчок по пустой области, без вкладок, не вызывает никаких событий так же, как и по пустому месту правее имеющихся вкладок. Запрет на закрытые сразу сделал, всегда одна вкладка болтается - нужно теперь по двойному клику правее последней (или единственной) вкладки создавать новую вкладку - пока новая вкладка только через меню либо по хоткею..
andrew_jr20 вне форума Ответить с цитированием
Старый 04.08.2011, 13:59   #4
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
По умолчанию

Обрабатываешь событие Selecting у TabControl следующим макаром:
Код:
        private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
        {
            if (e.TabPageIndex == (tabControl1.TabPages.Count - 1))
            {
                tabControl1.TabPages.Insert(tabControl1.TabPages.Count - 1, "Имя вкладки");
                e.Cancel = true;
            }
        }
Проверил, все работает
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Mixim вне форума Ответить с цитированием
Старый 04.08.2011, 18:47   #5
andrew_jr20
Пользователь
 
Регистрация: 01.06.2011
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Mixim Посмотреть сообщение
Обрабатываешь событие Selecting у TabControl следующим макаром:
Код:
        private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
        {
            if (e.TabPageIndex == (tabControl1.TabPages.Count - 1))
            {
                tabControl1.TabPages.Insert(tabControl1.TabPages.Count - 1, "Имя вкладки");
                e.Cancel = true;
            }
        }
Проверил, все работает
Оно и на первый взгляд как-то не так выглядит, и при вставке в рабочий код - после каждой вкладки создаётся "Имя вкладки", и при переходе на последнюю вкладку создаётся ещё одна, такая же - но на двойной клик это никакого влияния не оказывает
andrew_jr20 вне форума Ответить с цитированием
Старый 24.04.2015, 18:02   #6
iMic
 
Регистрация: 20.02.2015
Сообщений: 3
Радость Всё работает, но постоянных вкладок нужно две!

Точнее нужна только одна (+), на неё нельзя перейти - при попытке перехода создаётся новая стандартная вкладка (экспресс-панель), саму экпресс-панель закрывать можно, но если осталась только она, то автоматом фокус получает вкладка (+), которая тут же создаёт экспресс-панель.

У меня другой вопрос - как закрывать вкладки по клику средней кнопкой на заголовке, и вообще, как отслеживать клик на заголовке вкладки?
iMic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойной клик в listBox vandrouny Общие вопросы .NET 1 07.11.2010 00:31
Двойной клик по RXsplitter Spot Компоненты Delphi 1 26.01.2010 12:42
Как исключить повторное действие если был двойной клик? (Perl + Mysql) tenos Perl 3 15.01.2010 19:22
Двойной клик Алежа Общие вопросы .NET 3 16.11.2008 23:20