Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
1
.NET 4.x

Переход на вторую вкладку tabcontrol form2 с form1

25.04.2015, 13:20. Просмотров 1357. Ответов 19
Метки нет (Все метки)

Помогите, пожалуйста! не могу разобраться как сделать переход на вторую вкладку tabcontrol form2 с form1.. думала вот так
C#
1
2
3
Form3 ResultForm = new Form3(this);
            ResultForm.Show();
            tabControl1.SelectTab(tabPage2);
но дело в том,что на первой форме тоже есть tabcontrol и открывает страницу tabcontrola на первой форме.

Буду очень благодарна!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2015, 13:20
Ответы с готовыми решениями:

Переход из Form1 в Form2
Нужно, чтобы в Form1 Menustrip Открыть открывал Form2 Буду признательна тому, кто поможет

Переход с Form1 на Form2
Суть проста. При нажатии на Справка в ToolStripMenuItem (Form1) выводит Form2 1. Добавил Form2...

Проверить написанный код, так же исправить переход из Form2 в Form1
Здравствуйте, нужно проверить написанный код, так же исправить переход из Form2 в Form1. и сделать...

Как вставить картинку во всю вкладку в tabControl что бы она полностью заменяла вкладку
всем привет скажите как вставить картинку во всю вкладку в tabControl что бы она полностью заменяла...

19
Фрилансер
57 / 47 / 14
Регистрация: 13.12.2013
Сообщений: 373
25.04.2015, 15:40 2
C#
1
2
3
Form3 ResultForm = new Form3();
ResultForm.Show();
ResultForm.tabControl1.SelectTab(tabPage2);
1
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
25.04.2015, 15:46  [ТС] 3
goodniko, Выдает вот такую ошибку.
Ошибка 1 "DP.Form3.tabControl1" недоступен из-за его уровня защиты

не пойму в чем дело(
0
Фрилансер
57 / 47 / 14
Регистрация: 13.12.2013
Сообщений: 373
25.04.2015, 16:00 4
скорее всего из за области видимости., измените private на public
0
Модератор
Эксперт .NET
5101 / 4003 / 1152
Регистрация: 12.10.2013
Сообщений: 11,635
Записей в блоге: 2
25.04.2015, 16:02 5
Цитата Сообщение от goodniko Посмотреть сообщение
измените private на public
Как я и предполагал, что сейчас именно это и посоветуют.
Отвратительное решение.
0
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
25.04.2015, 16:07  [ТС] 6
goodniko, не помогло

Добавлено через 3 минуты
insite2012, какое решение Вы можете посоветовать?
0
Модератор
Эксперт .NET
5101 / 4003 / 1152
Регистрация: 12.10.2013
Сообщений: 11,635
Записей в блоге: 2
25.04.2015, 16:11 7
Цитата Сообщение от Наталия1809 Посмотреть сообщение
какое решение Вы можете посоветовать?
Ятд, оптимальное, в любом случае лучше чем делать контролы public.
Вот архив с примером. У меня на второй форме три вкладки, и соответственно в перечислении три константы. Если у вас больше - добавьте еще констант в перечисление. Для изменения нужной вкладки просто передавайте другую константу.
1
Вложения
Тип файла: rar Tabs_Demo.rar (40.8 Кб, 11 просмотров)
Фрилансер
57 / 47 / 14
Регистрация: 13.12.2013
Сообщений: 373
25.04.2015, 16:12 8
а можно еще по идеи с свойствами поиграться
0
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
25.04.2015, 16:43  [ТС] 9
insite2012, спасибо) попробую)

Добавлено через 6 минут
insite2012, что-то он совсем на меня заругался...

Ошибка 1 Аргумент "1": преобразование типа из "DP.Form1.Tabs" в "Tabs" невозможно

Ошибка 2 Наиболее подходящий перегруженный метод для "DP.Form3.Form3(Tabs)" имеет несколько недопустимых аргументов

Ошибка 3 Не удалось найти имя типа или пространства имен "Tabs" (пропущена директива using или ссылка на сборку?)
0
Модератор
Эксперт .NET
5101 / 4003 / 1152
Регистрация: 12.10.2013
Сообщений: 11,635
Записей в блоге: 2
25.04.2015, 17:35 10
Цитата Сообщение от Наталия1809 Посмотреть сообщение
что-то он совсем на меня заругался...
В моем же проекте работает? Киньте ваш проект, поправлю.
1
Модератор
Эксперт .NET
5366 / 4525 / 2886
Регистрация: 20.04.2015
Сообщений: 8,191
25.04.2015, 17:41 11
В классе Form3 создайте метод типа
C#
1
2
3
4
public void GoToTab(int tabIndex)
{
    tabControl1.SelectedIndex = tabIndex;
}
Здесь же можно добавить проверку индексов. С помощью метода можно будет открывать любую вкладку передавая ее индекс в качестве параметра. Например вторую открываем так:
C#
1
2
3
Form3 ResultForm = new Form3(this);
ResultForm.Show();
ResultForm.GoToTab(1);
0
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
26.04.2015, 12:46  [ТС] 12
insite2012, спасибо! получилось исправить ошибка.заработало,но немного некорректно.при нажатии на кнопку открывается 2 одинаковых окна. не подскажете, как это исправить?
0
Модератор
Эксперт .NET
5101 / 4003 / 1152
Регистрация: 12.10.2013
Сообщений: 11,635
Записей в блоге: 2
26.04.2015, 12:53 13
Цитата Сообщение от Наталия1809 Посмотреть сообщение
при нажатии на кнопку открывается 2 одинаковых окна.
Вы обработчики нажатия кнопок как делаете? Я их пишу прямо в своем коде, в конструкторе формы, а вы, видимо, создаете их щелчками. У вас, ятд, два обработчика к кнопке подключено. В конструкторе формы посмотрите, и если он там есть, удалите его.
0
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
26.04.2015, 13:08  [ТС] 14
insite2012, один обработчик...
0
Модератор
Эксперт .NET
5101 / 4003 / 1152
Регистрация: 12.10.2013
Сообщений: 11,635
Записей в блоге: 2
26.04.2015, 14:25 15
Цитата Сообщение от Наталия1809 Посмотреть сообщение
один обработчик...
Покажите код или дайте ваш пример.
0
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
26.04.2015, 14:29  [ТС] 16
insite2012, вот код form1
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
namespace DP
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            отделыToolStripMenuItem.Click += new EventHandler(отделыToolStripMenuItem_Click);
            должностиToolStripMenuItem.Click += new EventHandler(должностиToolStripMenuItem_Click);
            графикСменностиToolStripMenuItem.Click += new EventHandler(графикСменностиToolStripMenuItem_Click);
        }
void отделыToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form3 result = new Form3(Tabs.TAB1);
            result.Show();
        }
 
        void должностиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form3 result = new Form3(Tabs.TAB2);
            result.Show();
        }
 
        void графикСменностиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form3 result = new Form3(Tabs.TAB3);
            result.Show();
        }
 
        public enum Tabs
        {
            TAB1,
            TAB2,
            TAB3
        }
}
а вот form3

C#
1
2
3
4
5
6
7
8
9
10
11
12
namespace DP
{
    public partial class Form3 : Form
    {
        public Form3 ()
        {
            InitializeComponent();
        }
        public Form3(DP.Form1.Tabs tab): this()
        {
            tabControl1.SelectedTab = tabControl1.TabPages[(int)tab];
        }
0
Модератор
Эксперт .NET
5101 / 4003 / 1152
Регистрация: 12.10.2013
Сообщений: 11,635
Записей в блоге: 2
26.04.2015, 14:35 17
Наталия1809, все верно, значит должно работать. Посмотрите в дизайнере первой формы, нет ли там еще обработчиков.
0
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
26.04.2015, 14:37  [ТС] 18
insite2012, работает. но открывает две одинаковые form3

C#
1
2
3
private System.Windows.Forms.ToolStripMenuItem отделыToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem должностиToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem графикСменностиToolStripMenuItem;
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// cправкаToolStripMenuItem
            // 
            this.cправкаToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.отделыToolStripMenuItem,
            this.должностиToolStripMenuItem,
            this.графикСменностиToolStripMenuItem});
            this.cправкаToolStripMenuItem.Name = "cправкаToolStripMenuItem";
            this.cправкаToolStripMenuItem.Size = new System.Drawing.Size(65, 20);
            this.cправкаToolStripMenuItem.Text = "Справка";
            // 
// отделыToolStripMenuItem
            // 
            this.отделыToolStripMenuItem.Name = "отделыToolStripMenuItem";
            this.отделыToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
            this.отделыToolStripMenuItem.Text = "Отделы";
            this.отделыToolStripMenuItem.Click += new System.EventHandler(this.отделыToolStripMenuItem_Click);
            // 
            // должностиToolStripMenuItem
            // 
            this.должностиToolStripMenuItem.Name = "должностиToolStripMenuItem";
            this.должностиToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
            this.должностиToolStripMenuItem.Text = "Должности";
            this.должностиToolStripMenuItem.Click += new System.EventHandler(this.должностиToolStripMenuItem_Click);
            // 
            // графикСменностиToolStripMenuItem
            // 
            this.графикСменностиToolStripMenuItem.Name = "графикСменностиToolStripMenuItem";
            this.графикСменностиToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
            this.графикСменностиToolStripMenuItem.Text = "График сменности";
            this.графикСменностиToolStripMenuItem.Click += new System.EventHandler(this.графикСменностиToolStripMenuItem_Click);
            //
0
Модератор
Эксперт .NET
5101 / 4003 / 1152
Регистрация: 12.10.2013
Сообщений: 11,635
Записей в блоге: 2
26.04.2015, 14:42 19
Цитата Сообщение от Наталия1809 Посмотреть сообщение
но открывает две одинаковые form3
Цитата Сообщение от insite2012 Посмотреть сообщение
У вас, ятд, два обработчика к кнопке подключено.
Удалите из последнего показанного кода строки 16, 23 и 30 (или из кода в сообщении 16 строки 8, 9 и 10).
1
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 9
26.04.2015, 14:46  [ТС] 20
insite2012, спасибо Вам большое! =)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2015, 14:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Через Form1 открывают Form2 там открывается Form3 которая меняет данные в Form1. Но они не меняются
В первой форме Main по нажатию кнопки вызываю другую форму private void Button_AddVetrina(object...

Из form1 в form2
Запарился уже искать то что нужно! В общем при нажатии на форм 1 считываются координаты и в...

Из Form2 в Form1
В form1, после нажатия на кнопку открывается form2. Там можно выбрать и просмотреть картинки. Так...

Form1 связь с Form2!!!
Работа Form1 непосредственно взимосвязывает Form2 объясните:) начинающиму подробно разжуйте ??? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.