Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
4 / 4 / 0
Регистрация: 16.03.2011
Сообщений: 201

Задание действия

20.04.2011, 12:35. Показов 1258. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Подскажите, только начал учится программировать на С#.
Проблема такая: FORM1 и FORM2- FORM1 имеет textbox и button; FORM2- имеет таблицу DataGridView, суть в чем.
Как написать код, чтобы при нажатие кнопки открылось второе окно, в котором выбрав одну из строк таблицы, данные перенеслись в textbox первой формы, если не сложно с пояснениями!

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

Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.04.2011, 12:35
Ответы с готовыми решениями:

Арифметические действия над числами. Выбор номера действия. Перевод с Pascal
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер...

Выполнение действия на странице после срабатывания действия в другом скрипте
В теле страницы есть скрипт такого вида: <script>(function(d,a,b){let...

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

10
7 / 7 / 1
Регистрация: 08.02.2010
Сообщений: 30
20.04.2011, 12:43
При помощи свойств, т.е. во второй форме присваиваешь свойству первой формы значение, и выводишь в TextBox'е первой формы.
0
4 / 4 / 0
Регистрация: 16.03.2011
Сообщений: 201
20.04.2011, 12:48  [ТС]
Daffsik, Очень подробно и ничего непонятно

Добавлено через 1 минуту
Daffsik, И даже несовсем понял причем тут свойсва, когда должно быть обращение, а не изменение формы
0
 Аватар для NiceGuyEddy
220 / 143 / 35
Регистрация: 25.06.2010
Сообщений: 383
20.04.2011, 12:50
Ответы на 7 самых частых вопросов по WinForms
0
7 / 7 / 1
Регистрация: 08.02.2010
Сообщений: 30
20.04.2011, 12:52
Цитата Сообщение от kipper22 Посмотреть сообщение
Daffsik, Очень подробно и ничего непонятно
Код первой формы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public string sv { get; set; }
        private void Form1_Load(object sender, EventArgs e)
        {
            textbox1.Text = sv;
        }
    }
Код второй формы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        private void Submit_Click(object sender, EventArgs e)
        {
            Form1 frm = new Form1();
            frm.sv = DaraGridView.SelectedItem.Value; // Не помню точный метод
            this.Close();
        }
    }
Естественно если я верно понял суть вопроса...
1
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
20.04.2011, 12:56
Цитата Сообщение от kipper22 Посмотреть сообщение
Доброго времени суток!
Подскажите, только начал учится программировать на С#.
Проблема такая: FORM1 и FORM2- FORM1 имеет textbox и button; FORM2- имеет таблицу DataGridView, суть в чем.
Как написать код, чтобы при нажатие кнопки открылось второе окно, в котором выбрав одну из строк таблицы, данные перенеслись в textbox первой формы, если не сложно с пояснениями!

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

Заранее спасибо!
В дизайнере выделяешь свой текстбокс на первой форме и изменяешь св-во modifiers с private на public. Потом на второй форме объявляешь переменную public Form1 mainForm.
В обработчике нажатия на кнопку сразу после объявления второй формы, но перед form2.ShowDialog() вставляешь следующую строчку кода:
C#
1
form2.mainForm = this;
Открываешь вторую форму и выделяешь датагрид, заходишь на закладку событий (events) в панели свойств (выглядит как молния) и ищешь событие SelectionChanged, делаешь двойной клик на пустом поле и в создавшемся обработчике пишешь следующий код:

C#
1
2
3
4
5
6
7
8
9
10
if (dataGridView1.SelectedRows.Count == 0)
                return;
            mainForm.textBox1.Text ="";
            for(int i = 0;i<dataGridView1.ColumnCount;i++)
            {
                //Пробегаем по всем ячейкам выделенной строки
                mainForm.textBox1.Text += dataGridView1.SelectedRows[0].Cells[0] + " ";
            }
            //Закрываем form2
            this.Close();
Вот и все.
0
7 / 7 / 1
Регистрация: 08.02.2010
Сообщений: 30
20.04.2011, 12:59
Цитата Сообщение от XAHOK Посмотреть сообщение
В дизайнере выделяешь свой текстбокс на первой форме и изменяешь св-во modifiers с private на public. Потом на второй форме объявляешь переменную public Form1 mainForm.
Однако это действие противоречит правилам ООП.
0
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
20.04.2011, 16:00
Цитата Сообщение от Daffsik Посмотреть сообщение
Однако это действие противоречит правилам ООП.
Из интереса поискал правила ООП, и не нашел ни одного, которое я нарушил. Да предложенный мной вариант потоконебезопасен, но в контексте данной задачи вполне допустим. Возможно вы имели ввиду паттерн MVC, но его применение в рамках данной задачи приведет только к бессмысленному усложнению кода. Если вы имели ввиду что-то другое, то я бы хотел ознакомиться с вашей точкой зрения, т.к. вполне допускаю, что я не прав.

PS.Что касается вашего варианта, то сильно меня смутили следующие строки:

C#
1
2
3
Form1 frm = new Form1();
            frm.sv = DaraGridView.SelectedItem.Value; // Не помню точный метод
            this.Close();
Если честно, то я не понимаю, зачем создавать еще один объект класса Form1.
1
7 / 7 / 1
Регистрация: 08.02.2010
Сообщений: 30
20.04.2011, 16:53
Цитата Сообщение от XAHOK Посмотреть сообщение
Из интереса поискал правила ООП, и не нашел ни одного, которое я нарушил. Да предложенный мной вариант потоконебезопасен, но в контексте данной задачи вполне допустим. Возможно вы имели ввиду паттерн MVC, но его применение в рамках данной задачи приведет только к бессмысленному усложнению кода. Если вы имели ввиду что-то другое, то я бы хотел ознакомиться с вашей точкой зрения, т.к. вполне допускаю, что я не прав.
В рамках ООП, небезопасно открывать доступ ко всякого рода переменным, используем свойства. Не отрицаю, что и я возможно не прав.
Цитата Сообщение от XAHOK Посмотреть сообщение
Если честно, то я не понимаю, зачем создавать еще один объект класса Form1.
Инициализируем класс Form1, и используем свойство внутри класса. Возможно есть путь короче, не отказался бы от поправки.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
21.04.2011, 07:55
Цитата Сообщение от XAHOK Посмотреть сообщение
Из интереса поискал правила ООП, и не нашел ни одного, которое я нарушил.
Нарушена инкапсуляция
0
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
21.04.2011, 10:00
2 nio и Daffsik: Признаю свою некомпетентность. Тогда такой вариант думаю будет более правильным:

C#
1
2
3
4
5
6
7
8
9
10
11
12
class Form1 : Form
{
// .......
// Тело класса
// .......
 
    public string SameText
    {
         get { return textBox1.Text; }
         set { textBox1.Text = value; }
     }
}
2 Daffsik: На мой взгляд лучше при создании объекта класса Form2 передать ему ссылку исходный объект Form1, что я и предлагал ранее:

C#
1
2
3
4
5
6
7
8
9
class Form2 : Form
{
// .......
// Тело класса
// .......
 
     // Переменная для хранения ссылки на первую форму
     public Form1 mainForm;
}
И после создания объекта класса Form2 добавить следующий код

C#
1
form2.mainForm = this;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.04.2011, 10:00
Помогаю со студенческими работами здесь

Задание исходного значения параметра эксперимента (задание интенсивности прибытия заявок)
Доброго времени! Вопрос в следующем: можно ли сделать так, чтобы в блоке source число генерируемых заявок задавалось не напрямую в...

Проверьте верно ли сделано задание (задание для ослабленных детей)
Схема дана на фото, нужно найти скорости точек А и В изображенных на схеме, проверьте мое решение пожалуйста !!!

Переписать коды командных файлов, выполняющих одно задание, так, чтобы они выполняли другое задание
задание №1 нужно каким-то образом переделать в задание №2 Задание №1: Написать командный файл, выполняющий следующие действия...

Задание по Паскалю ( задание на фото) Номер - 25
Буду благодарен.

Разделить пакетное задание на пакет и задание.
Допустим, есть некая консольная программа, для примера translate.exe. Нужно выполнить несколько команд, например таких: translate...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru