ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[C#] Обмен данными между формами.
  #1  
Старый 22.04.2010, 21:28
NetSter
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме:
4275992

Репутация: 1188


Red face [C#] Обмен данными между формами.

Всем привет.
Шарп изучаю недавно так что выручайте)
Есть ситуация.
В форме 1 посредством разных действий получили информацию, вывели в разные текстбоксы (штук 5, это не особо важно).
Теперь по клику кнопки нужно собрать все данные с текстбоксов, форму 1 спрятать, запустить форму 2, в которой уже есть RichTextBox, в который нужно все данные записать (не по нажатию батона на форм2 а сразу при загрузке формы2).
для примера 2 чистых формы с текстбооксом и батоном.
Код формы1

PHP код:
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 button1_Click(object senderEventArgs e)
        {
            
Form Form1 = new Form1();
            
Form Form2 = new Form2();
            
this.Hide();
            
Form2.Show();
        }
    }

и вторая форма

PHP код:
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();
        }

        private 
void button1_Click(object senderEventArgs e)
        {
            
Form Form1 = new Form1();
            
Form Form2 = new Form2();
            
Form1.Show();
            
this.Close();
        }
    }

теперь самое вкусненькое)
так как все таки заставить форму2 при загрузке (самой формы) заполнить ричтекстбокс формы2 тесктом который находится в текстбоксе формы1.
тестовый примитивный пример проекта лежит по ссылке http://dump.ru/file/4539450
Помогите, без Вас никак)
Спасибо.
 
Ответить с цитированием

  #2  
Старый 22.04.2010, 22:16
0kt0ber
Новичок
Регистрация: 28.01.2010
Сообщений: 15
Провел на форуме:
52119

Репутация: 17
По умолчанию

NetSter
Один из вариантов:
Form1:
Код:
public partial class Form1 : Form
    {
        public Form1()
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this);
            this.Hide();
            f2.Show();            
        }

        public string getString()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(textBox1.Text);
            sb.Append(textBox2.Text);
            sb.Append(textBox3.Text);
            sb.Append(textBox4.Text);
            return sb.ToString();            
        }
    }
Form2:
Код:
    
public partial class Form2 : Form
    {
        private Form1 _f1;
        public Form2(Form1 f1)
        {           
            _f1 = f1;
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            richTextBox1.Text = _f1.getString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            _f1.Show();
            this.Close();
        }
    }
 
Ответить с цитированием

  #3  
Старый 22.04.2010, 22:47
vicgerrard
Новичок
Регистрация: 04.04.2010
Сообщений: 10
Провел на форуме:
64293

Репутация: 0
По умолчанию

Во-первых, надо поставить значения свойства Modifers у ричтекстбокса на public, а дальше уже вот так:
На первой форме в нужном месте пишем:
Код:
frm2 frm = new frm2();
frm.RichTextBox1.Text += textBox1.Text;
frm.RichTExtBox1.TExt += textBox2.Text;
...
frm.RichTextBox1.Text += textBox100.Text;
frm.ShowDialog(this);
frm.Dispose();
Не забываем добавить в проект форму с именем frm2.cs

Последний раз редактировалось vicgerrard; 22.04.2010 в 23:23..
 
Ответить с цитированием

  #4  
Старый 22.04.2010, 22:51
0kt0ber
Новичок
Регистрация: 28.01.2010
Сообщений: 15
Провел на форуме:
52119

Репутация: 17
Thumbs down

Цитата:
Сообщение от vicgerrard  
Во-первых, надо поставить значения свойства Modifers у ричтекстбокса на public...

А во-вторых...???
 
Ответить с цитированием

  #5  
Старый 22.04.2010, 22:55
vicgerrard
Новичок
Регистрация: 04.04.2010
Сообщений: 10
Провел на форуме:
64293

Репутация: 0
По умолчанию

Цитата:
Сообщение от 0kt0ber  

А во-вторых...???
Это так принципиально ?
Я ведь написал: "Во-первых .... ну а дальше"
 
Ответить с цитированием

  #6  
Старый 22.04.2010, 23:04
0kt0ber
Новичок
Регистрация: 28.01.2010
Сообщений: 15
Провел на форуме:
52119

Репутация: 17
По умолчанию

Цитата:
Сообщение от vicgerrard  
Это так принципиально ?
Да как-то, что ли "не по взрослому" делать public'ом, уж лучше не полениться и геттер сделать, тем более
Цитата:
...
Теперь по клику кнопки нужно собрать все данные с текстбоксов, форму 1 спрятать, запустить форму 2
...
возможно все данные с текстбоксов нужно как-то обработать...


"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете." (С) Стив Макконнелл

Последний раз редактировалось 0kt0ber; 22.04.2010 в 23:07..
 
Ответить с цитированием

  #7  
Старый 22.04.2010, 23:07
vicgerrard
Новичок
Регистрация: 04.04.2010
Сообщений: 10
Провел на форуме:
64293

Репутация: 0
По умолчанию

Цитата:
Сообщение от 0kt0ber  
Да как-то, что ли "не по взрослому" делать public'ом, уж лучше не полениться и геттер сделать, тем более

возможно все данные с текстбоксов нужно как-то обработать...
Мне 14 лет, неделю назад только закончил курс с# (на 5. кстати), говорю, как умею )
 
Ответить с цитированием

Spy++
  #8  
Старый 22.04.2010, 23:30
ichechen
Познающий
Регистрация: 16.10.2009
Сообщений: 40
Провел на форуме:
152013

Репутация: 14
По умолчанию Spy++

Вроде тема по теме ))))
В общем, очень нужна утилита Spy++ у кого есть скиньте пожалуйста

P.S.
Цитата:
Сообщение от NetSter  
Передача данных
http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/Mixture/DataTransfer/217a.mspx

Последний раз редактировалось ichechen; 22.04.2010 в 23:37..
 
Ответить с цитированием

  #9  
Старый 23.04.2010, 00:15
0kt0ber
Новичок
Регистрация: 28.01.2010
Сообщений: 15
Провел на форуме:
52119

Репутация: 17
По умолчанию

Spy++ от VS2010RC
из папки с установленной студии
 
Ответить с цитированием

  #10  
Старый 23.04.2010, 00:41
scrat
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме:
5812656

Репутация: 1540


Отправить сообщение для scrat с помощью ICQ
По умолчанию

у тебя там должен быть файлик Program.cs, в нём происходит запуск твоей первой формы. Предлагаю в классе первой формы сделать публичный метод(или несколько публичных полей), для передачи данных вверх. В Program.cs ты запустишь первую форму, после чего закроешь, получишь данные и передашь их во вторую форму.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обмен валют _Dance_ Платежные системы: Webmoney, Yandex Деньги, РБК Деньги и т. д. 254 17.06.2010 19:13
Мне нужны яндекс деньги отдаю WM Troyan47 Покупка, продажа, услуги в Соц. Сетях 10 03.12.2009 08:55
Sale of ICQ Hertz ICQ - Покупка, продажа 1 28.09.2009 04:27
Обмен данными между 2мя потоками _nic С/С++, C#, Delphi, .NET, Asm 5 04.09.2009 23:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ