С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/133: Рейтинг темы: голосов - 133, средняя оценка - 4.98
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 71
1
.NET 4.x

Скрыть главную форму, чтобы показать вторую

23.12.2011, 06:46. Показов 26691. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте что неправильно делаю?

При загрузке первой формы (form1 load) хочу показать вторую (form2). При загрузке второй формы(form2 load) хочу скрыть первую
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
//загрузка первой формы
private void Form1_Load(object sender, EventArgs e)
        {
            Form Form2= new Form2();
            Form2.Show();
        }
 
//загрузка второй формы
private void Form2_Load(object sender, EventArgs e)
        {
            Form Form1= new Form1();
            Form1.Hide();
        }
В результате обе формы на экране(первая не скрылась)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2011, 06:46
Ответы с готовыми решениями:

Скрыть и отобразить главную форму
Подскажите пожалуйста. В моем проекте 2 формы Form1 и Form2, Form1 является главной формой. Как...

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

Как показать вторую форму из первой
Подскажите пожалуйста, что нужно чтобы банально вызвать форму из другой формы? Из кода в этой теме...

Показать главную форму из дочерней не создавая новый объект
Доброго времени суток. Столкнулся с проблемой. Допустим, при запуске приложения открывается...

10
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
23.12.2011, 07:10 2
а зачем ты во второй процедуре опять создаешь новую форму форм1?

Добавлено через 47 секунд
C#
1
2
3
4
5
6
7
8
9
10
11
12
//загрузка первой формы
private void Form1_Load(object sender, EventArgs e)
        {
            Form Form2= new Form2();
            Form2.Show();
        }
 
//загрузка второй формы
private void Form2_Load(object sender, EventArgs e)
        {
            Form1.Hide();
        }
попробуй так.
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
23.12.2011, 07:37 3
Цитата Сообщение от n1l Посмотреть сообщение
а зачем ты во второй процедуре опять создаешь новую форму форм1?
В C# нету процедур. Есть методы.


Цитата Сообщение от n1l Посмотреть сообщение
попробуй так.
Так чисто даже теоретически не должно работать.

Правильно так, но первое окно не скрывается:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.Show(this);
            Hide();
        }
    }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
            if (Owner is Form1)
            {
                FormClosing += new FormClosingEventHandler(Form2_FormClosing);
            }
        }
 
        void Form2_FormClosing(object sender, FormClosingEventArgs e)
        {
            ((Form1)Owner).Show();
        }
    }
Но не работает. Видимо из-за запуска окна в Application.Run(new Form1()); (то есть как-то связанно с этим).
3
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 71
23.12.2011, 08:44  [ТС] 4
n1l

в данном случае ошибка:
Ошибка 1 Для нестатического поля, метода или свойства "System.Windows.Forms.Control.Hide()" требуется ссылка на объект
0
гроза ленивых студентов
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
23.12.2011, 08:54 5
blacksmithov, а ты можешь вообще пояснить, на кой черт тебе такой изврат? что ты сделать пытаешься? у меня есть ощущение что существуют гораздо более адекватные способы выполнить твою задачу...
0
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 71
23.12.2011, 09:49  [ТС] 6
В общем сделал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            Application.Run(new Form2());
        }
теперь при закрытии первой формы открывается вторая... что в принципе меня устраивает - уже не устраивает((

Добавлено через 54 минуты
Цитата Сообщение от znake Посмотреть сообщение
blacksmithov, а ты можешь вообще пояснить, на кой черт тебе такой изврат? что ты сделать пытаешься? у меня есть ощущение что существуют гораздо более адекватные способы выполнить твою задачу...
В общем в первой форме указываются параметр -это сервер к которому нужно подключиться.
Вторая форма это соответственно интерфейс клиента.

попорядку:
загружается первая форма, в ней указывается сервер(ну если уже есть сервер то не надо указывать). По истечению допусти 5 секунд если пользователь не нажимает кнопку "настроить", то запускается вторая форма а первая исчезает
0
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
23.12.2011, 10:11 7
при условии, что нужен возврат к первой форме:
C#
1
2
3
4
5
6
7
private void Form1_Load(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            this.Hide();
            form2.ShowDialog();
            this.Show();
        }
На второй форме вообще ничего писать не нужно

если возвращаться не нужно, правильное решение в 6 посте

Добавлено через 12 минут
blacksmithov, почитай внимательно о классе Form. Событие Load вызывается перед отображением формы, а ты уже в нем вызываешь Form2, хотя тебе нужно отображать Form1 еще 5 сек.
Логика поведения приложения совсем непонятна, сядь и распиши на листике (лучше с диаграммой), что за чем и когда должно открываться.

Цитата Сообщение от blacksmithov Посмотреть сообщение
По истечению допусти 5 секунд если пользователь не нажимает кнопку "настроить", то запускается вторая форма а первая исчезает
а это совсем гнилой подход, пользователь первый раз все настроит, но зато потом каждый день (или по несколько раз в день) будет тупо таращится на кнопку настройки и нервно ждать, когда же запустится это ..... приложение.
5
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
23.12.2011, 11:14 8
Не судите строго, я лишь пытался указать на нелогичность.
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
23.12.2011, 17:13 9
И что форма скрывается?
Цитата Сообщение от Casper-SC Посмотреть сообщение
Но не работает. Видимо из-за запуска окна в Application.Run(new Form1()); (то есть как-то связанно с этим).
Не, ну если другой способ подошёл, то и этот работает! Просто вызов Hide() не скрывает главное окно. Вот о чём я говорил. А так уж извини, о целях изврата с окнами в курсе небыл.

Чтобы окно скрывалось, надо чтобы свойство ShowInTaskbar у главного окна было false.
0
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 5
27.11.2013, 19:59 10
И мне эта тема помогла
Спасибо...)
0
0 / 0 / 0
Регистрация: 10.11.2019
Сообщений: 12
19.03.2021, 00:17 11
Вообщем была такая же проблема (форма не скрывалась с помощью метода Hide) я удалил форму и добавил свою собственную. Это помогло. Формы начали отображаться одыкватно.
0
19.03.2021, 00:17
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2021, 00:17
Помогаю со студенческими работами здесь

При запуске программы создать обе формы, а потом первую скрыть, вторую показать
У меня проект с двумя формами. Одна главная, а другая появляется при нажатии кнопки.... Вторая...

Показать скрыть форму
Добрый вечер, есть парочка вопросов: 1. Как при нажатие кнопки показать форму2 и скрыть форму1 ...

Скрыть/показать форму
Помогите как сделать,что б при нажатии на кнопку открывалась соответствующая форма и пряталась...

Открыть вторую форму и скрыть первую
Скажите почему в форме, которая содержит класс, нельзя сделать вот так: Form2 a=new Form2();...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru