С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
1
.NET 4.x

Не меняться цвет в основной форме

19.05.2014, 16:02. Показов 1736. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот написал код
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
using System;
    public partial class Settings : Form
    {
        public Settings()
        {
            InitializeComponent();
        }
 
        public ColorDialog colorForm;
        private void apply_button_Click(object sender, EventArgs e)
        {
            Form1 MainForm = new Form1();
            MainForm.BackColor = colorForm.Color;
        }
 
        private void Close_button_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void Color_button_Click(object sender, EventArgs e)
        {
            colorForm = new ColorDialog();
            colorForm.ShowDialog();
        }
}
Почему при клике на кнопку применить не меняться цвет ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2014, 16:02
Ответы с готовыми решениями:

Chekbox в форме, не хочет меняться
Друзья помогите. Мучуюсь 2 дня. Ситуация такая, вывожу значения чекбоксов из бд табличку вот...

При нажатии на определенный блок, цвет этого блока должен меняться.
Есть вот такой вот код: var a = document.getElementByClass('green');...

Обновление основной формы данными из внедрённой формы, основанной на основной форме
Всем привет! Извиняюсь за тавтологию, но зато изложено кратко! В приложении БД. Не обращайте...

Как написать программу winapi в которой будет непрерывно меняться цвет кнопок?
Необходимо сделать программу которая работает с драйвером(чтение данных с порта). Данные по адресу...

7
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
19.05.2014, 16:17 2
Цвет меняется, но для нового экземпляра Вашей Form1.
0
2 / 2 / 2
Регистрация: 19.05.2014
Сообщений: 13
19.05.2014, 16:29 3
C#
1
2
3
4
           
            ColorDialog colorForm = new ColorDialog();
            if (colorForm.ShowDialog() == DialogResult.OK)
                this.BackColor = colorForm.Color;
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
19.05.2014, 16:31 4
Stigmat, не this

Сделайте в Вашей форме Settings поле Form1 и передавайте указатель на основную форму через конструктор:
C#
1
2
3
4
5
Form1 mainForm;
public Settings(Form1 frm)
{
    mainForm = frm;
}
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
20.05.2014, 08:40  [ТС] 5
Цитата Сообщение от Spawn Посмотреть сообщение
Сделайте в Вашей форме Settings поле Form1 и передавайте указатель на основную форму через конструктор:
Можно ли поподробней объяснить, а то я не понял...

Добавлено через 11 часов 10 минут
Цитата Сообщение от Spawn Посмотреть сообщение
не this
Сделайте в Вашей форме Settings поле Form1 и передавайте указатель на основную форму через конструктор:
Сделал как вы сказали сгенирирувалась исключительная ситуация

Добавлено через 21 минуту
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
        public Settings()
        {
            InitializeComponent();
        }
          ColorDialog colorForm;
        
        MainForm mf = new MainForm();
 
        private void apply_button_Click(object sender, EventArgs e)
        {
 
        }
 
        private void Close_button_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void Color_button_Click(object sender, EventArgs e)
        {
            colorForm = new ColorDialog();
            colorForm.ShowDialog();
            this.BackColor = colorForm.Color;
 
        }
Дочернего окна меняет цвет формы, а основоного как сделать ? и желаетльно сделать так что бы цвет менялься при нажатии на кнопку применить
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
20.05.2014, 09:45 6
Лучший ответ Сообщение было отмечено Sylar9 как решение

Решение

Не нужно каждый раз присваивать переменной новое значение. Вы назначение оператора new понимаете? Для того чтобы из дочерней формы получилось управлять родительской, дочерней должен быть передан указатель на родительскую, например, через конструктор.
Сейчас у Вас конструктор выглядит так:
C#
1
2
3
4
        public Settings()
        {
            InitializeComponent();
        }
Изменяем на следующее:
C#
1
2
3
4
        public Settings(Form1 parent)
        {
            InitializeComponent();
        }
Form1 или MainForm или какой там у Вас тип родительской формы.

Создаём переменную с типом родительской формы, например, перед конструктором и в конструкторе присваиваем данной переменной указатель на родительскую форму:
C#
1
2
3
4
5
6
        Form1 parentForm;
        public Settings(Form1 parent)
        {
            InitializeComponent();
            parentForm = parent;
        }
Теперь в любом месте дочерней формы Вы можете обратиться к родительской через переменную parentForm, т.е. обработчик кнопки Apply будет выглядеть так:
C#
1
2
3
4
        private void apply_button_Click(object sender, EventArgs e)
        {
            parentForm.BackColor = colorForm.Color;
        }
Поменяется также вызов дочерней формы из родительской, сейчас Вы пишете в родительской
C#
1
new Settings();
а нужно будет писать
C#
1
new Settings(this);
т.е. передавать указатель на родительскую дочерней.
1
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
20.05.2014, 13:53  [ТС] 7
спасибо вам огромное !!! реально помогло

Добавлено через 12 минут
Цитата Сообщение от Spawn Посмотреть сообщение
Не нужно каждый раз присваивать переменной новое значение. Вы назначение оператора new понимаете? Для того чтобы из дочерней формы получилось управлять родительской, дочерней должен быть передан указатель на родительскую, например, через конструктор.
Сейчас у Вас конструктор выглядит так:
А вы тоже не поможете вот тема ссылка
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
20.05.2014, 14:47 8
Sylar9, решается также, как и тут. Вы в дочерней форме получаете указатель на родительскую, а на родительской форме создайте свойство, например:
C#
1
2
3
4
5
6
7
8
public class MainForm : Form
{
    public string MainText
    {
         get { return textBox1.Text; }
         set { textBox1.Text = value; }
    }
}
Из дочерней формы соответственно обращаетесь к свойству и тем самым получаете или изменяете текст в текстовом поле на главной форме.
0
20.05.2014, 14:47
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2014, 14:47
Помогаю со студенческими работами здесь

Как на доп. форме вывести список данных, вводимых на основной форме?
Есть 2 формы: основная и дополнительная(Мемо). Нужно чтобы при вводе в основную форму, а именно:...

Псевдографика , дом в котором при нажатии клавиши один 1 или 2 будет меняться цвет в окошке
сделать дом в котором при нажатии клавиши будет меняться цвет в окошке

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru