Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 05.10.2014
Сообщений: 95

Создание Windows приложений. Воспользоваться данными одной формы в другой

09.02.2015, 16:44. Показов 2688. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Само задание
Создать меню с командами input, Calc, About. При выборе команды About открывается окно с информацией о разработчике. При выборе команды Input открывается диалоговое окно, содержащее:
• три поля ввода типа TextBox с метками Number 1, Number 2, Number 3;
• группу из двух флажков (Summ, Least multiple) типа CheckBox;
• кнопку типа Button.
Обеспечить возможность ввода трех чисел и выбора режима вычислений с помощью флажков: подсчет суммы трех чисел (Summ) и/или наименьшего общего кратного двух первых чисел (Least multiple). При выборе команды Calc открывается диалоговое окно с результатами.



Я написала сам код этой программы. Не могу только разобраться, как использовать данные Form2 в Form3.
Получается, я делаю вычисления в Form2 и в конечном итоге получаю, допустим z1 = (a + b + c)(сумма чисел) и z2(равное некоторому выражению).
Так вот, в Form3 необходимо выполнить следующую функцию, чтобы вывести эти результаты
C#
1
2
3
4
private void Form3_Load(object sender, EventArgs e)
        {
            label1.Text = Convert.ToString(z1);
            label2.Text = Convert.ToString(z2);
вопрос: "Как использовать z1 и z2, которые находятся в Form2?"
Ответы на 7 самых частых вопросов по WinForms здесь я не очень поняла, подскажите, пожалуйста, как сделать конкретно к моему примеру

Добавлено через 27 минут
могу выложить сам текст программы, только помогите, пожалуйста

Добавлено через 23 минуты
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
37
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void inputToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 dial = new Form2(); //создание экземпляра класса окна
            dial.ShowDialog();        
 
        }
 
        private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Разработчик - Студент группы ПИЭ-41");
        }
 
        private void calcToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form3 dial = new Form3(); //создание экземпляра класса окна
            dial.ShowDialog(); 
        }
    }
}
Form2
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
 
        public Form2()
        {
            InitializeComponent();
            
        }
 
        int z1, z2;
 
        private void button1_Click(object sender, EventArgs e)
        {
            
            int a = Convert.ToInt32(textBox1.Text);
            int b = Convert.ToInt32(textBox2.Text);
            int c = Convert.ToInt32(textBox3.Text);
            
 
 
 
            if (checkBox1.Checked)
            {
                z1 = (a + b + c);
            }
            if (checkBox2.Checked)
            {
                for (int i = 0; i < (a * b + 1); i++)
                {
                    if (i % a == 0 && i % b == 0)
                    {
                        int nok = i;
                        if (i != 0)
                        {
                            z2 = i;
                            break;
                        }
                    }
                }
            }
           
        }
 
 
    }
}
Form3
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
        private void Form3_Load(object sender, EventArgs e)
        {
            label1.Text = Convert.ToString(z1);
            label2.Text = Convert.ToString(z2);
        }
    }
    
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.02.2015, 16:44
Ответы с готовыми решениями:

Заполнение dataGridView одной формы данными из другой формы
Добрый день! Оооочень прошу помочь. Что то никак не могу разобраться. Есть основная форма Form1, в которой у меня идут все...

Создание одной формы из другой
Имеются 2 формы. Вот первая var bazaMainForm: TbazaMainForm; Excel: Variant; s:string; implementation {$R *.dfm}

Создание одной формы из другой
Здравствуйте. Основная задача - открытие второй формы щелчком на кнопку в первой. В данном разделе видел уже темы с таким названием....

9
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
09.02.2015, 16:45
В форме 2 пишете в коде на открытие формы 3:
C#
1
2
3
            Form3 f = new Form3();
            f.Owner = this;
            f.Show();
В форме 3 пишете на загрузке формы:
C#
1
2
3
4
5
6
private void Form3_Load(object sender, EventArgs e)
        {
            Form2 main = this.Owner as Form2;
            label1.Text = Convert.ToString(main.z1);
            label2.Text = Convert.ToString(main.z2);
        }
0
1 / 1 / 0
Регистрация: 05.10.2014
Сообщений: 95
09.02.2015, 17:07  [ТС]
это писать
Цитата Сообщение от chumich Посмотреть сообщение
C#
1
2
3
Form3 f = new Form3();
f.Owner = this;
f.Show();
внутри этого?
Цитата Сообщение от picabu Посмотреть сообщение
C#
1
2
3
4
public Form2()
{
InitializeComponent();
}
Добавлено через 6 минут
если я так пишу, то вылезает ошибка подчеркивается строка в первой форме dial.ShowDialog();
и в сообщении написано:
Форма ShowDialog пыталась установить в качестве своего владельца недейсвительную форму. Формы не могут быть владельцами самих себя или своих владельцев.
Имя параметра: owner
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
09.02.2015, 17:15
Цитата Сообщение от picabu Посмотреть сообщение
внутри этого?
Нет, на Form_Load. Только сейчас увидел, что у вас форма 3 не через 2 открывается. Так что f.Show(); там не нужно. И ShowDialog для двух форм тоже не даст этому коду сработать. Надо по-другому. Сейчас некогда, попозже постараюсь написать. Наверно придется через форму 1 передавать - она у вас за главную получается.
0
1 / 1 / 0
Регистрация: 05.10.2014
Сообщений: 95
09.02.2015, 17:15  [ТС]
Возможно, дело в том, что Form3 открывается не из Form2, а из Form1...
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
09.02.2015, 17:15
Цитата Сообщение от picabu Посмотреть сообщение
Форма ShowDialog пыталась установить в качестве своего владельца недейсвительную форму. Формы не могут быть владельцами самих себя или своих владельцев.
Не видел, что вы уже написали. Вот про это я и говорил:
Цитата Сообщение от chumich Посмотреть сообщение
И ShowDialog для двух форм тоже не даст этому коду сработать.
0
1 / 1 / 0
Регистрация: 05.10.2014
Сообщений: 95
09.02.2015, 19:52  [ТС]
Сдавать нужно в четверг, если у Вас будет время подумать над этим заданием, буду очень Вам благодарна.
Просто хотелось бы разобраться в данной теме.

Добавлено через 2 часа 32 минуты
Все, я сама придумала, как сделать)
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
09.02.2015, 20:21
Цитата Сообщение от picabu Посмотреть сообщение
Все, я сама придумала, как сделать)
И как? Код - в студию
0
1 / 1 / 0
Регистрация: 05.10.2014
Сообщений: 95
10.02.2015, 15:10  [ТС]
в первой форме написала
C#
1
2
public int returnForm2;
public int returnForm3;
при создании новых форм добавила строку
dial.Owner = this;

во второй форме
C#
1
Form1 oldwin = (Form1)this.Owner;
потом в ней же
C#
1
2
oldwin.returnForm2 = z1; 
oldwin.returnForm3 = z2;//( z1, z2 - значения, которые нужно передать)
и в третей форме
C#
1
2
3
4
5
6
private void Form3_Load_1(object sender, EventArgs e)
        {
            Form1 oldwin = (Form1)this.Owner;
            label4.Text = Convert.ToString(oldwin.returnForm2);
            label5.Text = Convert.ToString(oldwin.returnForm3);
        }
и всё) оказалось, что все очень просто, нужно было лишь посидеть и хорошенько подумать
1
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
10.02.2015, 15:47
Цитата Сообщение от picabu Посмотреть сообщение
нужно было лишь посидеть и хорошенько подумать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2015, 15:47
Помогаю со студенческими работами здесь

Создание одной формы в другой
Создаю модульное приложение. Вопрос прост-как из главной формы(имеющей не себе только menustrip и пустое тело) В пустое тело добалять...

Создание Label из одной формы в другой
Есть две формы Form1 и Form2. Как сделать так: В Form1 создается кнопка (Button). Надо чтобы при нажатии на эту кнопку создавался новый...

Как перенести значения из одного компонента одной формы в другой компонент другой формы?
В общем ситуация смешная для профи,делаю программу для редактирования и печати вкладышей для дипломов на PHP,сделал две формы,нужнго...

Создание формы (запроса) с выводом всех значений одной из таблиц, но по условиям полей из другой таблицы
Добрый день, уважаемые форумчане!!! Сформулировал заголовок как смог :) Имеем: - таблица ВремяПриема ( Время) - таблица...

Запуск формы с данными из другой подчиненной формы!
Есть форма Поиск. В ней подчиненная форма с результатами. Надо при нажатии кнопки Изменить открывается форма редактирования с данными...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru