Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обратиться к объекту другой формы, очень часто задаваемый вопрос 
V
    Опции темы
AET
Дата 3.12.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 13.3.2007

Репутация: нет
Всего: нет



чтото не получается
PM MAIL   Вверх
thomas
Дата 3.12.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



AET
Код в студию.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
AET
Дата 3.12.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 13.3.2007

Репутация: нет
Всего: нет



вот форма3
Код
    namespace WindowsApplication1
{
    public partial class Form3 : Form
    {  public Form3()

        {
            InitializeComponent();
            
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Вы хотите выйти из модуля?", "Выход из модуля",
          MessageBoxButtons.YesNo, MessageBoxIcon.Question)
          == DialogResult.Yes)
            {
                Close();
            }

        }

        private void оПрограммеToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Form4 f = new Form4();
            f.Show();
        }

        private void добавитьToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void видеоToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 f = new Form5();
            f.Show();
        }

        private void программыToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Form5 f = new Form5();
            f.Show();
        }

        private void заданиеToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Form5 f = new Form5();
            f.Show();
        }

        private void тестToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 f = new Form5();
            f.Show();
        }

        private void officeWordToolStripMenuItem_Click(object sender, EventArgs e)
        {
           
        }

        private void Form3_Load(object sender, EventArgs e)
        {
            this Text = "TextBox1.Text";
        }
       
      }
    }  

а вот форма 2
[code] public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            this.TopMost = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
           {
                Form3 f = new Form3();
                f.Show(); this.Close();
                
            }
           
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }
       } [\code]
PM MAIL   Вверх
Real
Дата 5.12.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 507
Регистрация: 9.11.2007

Репутация: 0
Всего: -1



 Чем отличаеться?
Код

Form EP = new ExtendedParams();
 EP.ShowDialog();

Код

Form EP = new ExtendedParams();
 EP.Show();

Код

Form EP = new Form();
 EP.Show();

Код

Form EP = new Form ();
 EP.ShowDialog();

PM   Вверх
mr.DUDA
Дата 19.12.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Real, ShowDialog отличается от Show тем что в первом случае форма показывается модально, т.е. блокирует другие формы приложения до тех пор пока эту форму не закроют. Остальные случаи - создание либо экземпляра своей формы (ExtendedParams) либо формы-"болванки" (Form), на которой ничего нет.


--------------------
user posted image
PM MAIL WWW   Вверх
mr.DUDA
Дата 20.12.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Частично ответы по теме даны тут: http://forum.vingrad.ru/index.php?show_typ...howtopic=188004


--------------------
user posted image
PM MAIL WWW   Вверх
tht
Дата 23.12.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 10.5.2006

Репутация: 1
Всего: 1



отвечу сразу на первый вопрос темы.
есть Form1.cs, у нее есть Form1.Designer.cs в этом файле в конце есть список компонентов и контролов которые вставлены в форму. типа так 
Код

private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.TextBox textBox3;


если добавляете к проекту новую форму Form2, то у нее тоже есть Form2.Designer.cs
в конце которой тоже есть список объявлений типа 
Код

private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.TextBox textBox3;


что бы был доступ к переменным(контролам) второй формы(Form2)
нужно в этой второй форме (Form2.Designer.cs)обьявить переменные след. образом
Код

public System.Windows.Forms.TextBox textBox1;
public System.Windows.Forms.TextBox textBox2;
public System.Windows.Forms.TextBox textBox3;


а из первой формы вызывать их след. образом:
в форме Form1.cs допустим при нажатии на кнопку в этой форме
Код

    private void button1_Click(object sender,EventArgs e) {
      FormLoadData fr2 = new FormLoadData();
      fr2.textBox1.Text = "Hello !";
      fr2.ShowDialog();
    }

тоже самое ответил mr.DUDA только в сокращенном варианте. а я разъяснил более подробно.

Это сообщение отредактировал(а) tht - 23.12.2007, 11:15
PM MAIL   Вверх
kirillga
Дата 9.1.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 1.12.2007

Репутация: нет
Всего: нет



Помогите разобраться 
У меня есть например 1 форма
Form1
в ней объявлена переменная
Код

public int prov;

из неё вызываю Form2
Код

private void button1_Click(object sender, EventArgs e)
{
                    this.Hide();
                    Form1.ShowDialog();
}

Как теперь открыть Form1 не создовая новой форы тобишь чтобы все осталось как вводил во всех полях и передать в него значение prov????

можно конечно через Form1.Show(); но если форм 5 например то все значения таскать за собой надо будет.
PM   Вверх
mr.DUDA
Дата 9.1.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Цитата(kirillga @  9.1.2008,  13:06 Найти цитируемый пост)
Form1.ShowDialog();

совсем это не похоже на:

Цитата(kirillga @  9.1.2008,  13:06 Найти цитируемый пост)
из неё вызываю Form2




--------------------
user posted image
PM MAIL WWW   Вверх
Real
Дата 9.1.2008, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 507
Регистрация: 9.11.2007

Репутация: 0
Всего: -1



2kirillga

Код

Form1 fm=new Form1();
this.Hide();
fm.Show();

PM   Вверх
cASSAndra
Дата 21.1.2008, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



слушайте, тут делфисту без бутылки не обойтись  smile.   smile у меня есть форма, а в ней MDI окна. мне грубо говоря надо, чтобы на главной форме в ComboBox отражалось, в каком MDI окне я нахожусь.
  
Цитата

public System.Windows.Forms.ToolStripComboBox toolStripCmbBoxMode;

не помогает. пишет 
Цитата

An object reference is required for the nonstatic field, method, or property 'KMB_ExportData.MainForm.toolStripCmbBoxMode'

что делать то? Хелп, плиз smile 

PM MAIL   Вверх
Qhermit
Дата 30.3.2008, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 27.3.2008

Репутация: нет
Всего: нет



Помогите ! У  меня такая проблема: в методе класса ImageProcClass.cs делаются преобзарования матрицы изображения ну эт неважно, мне нужно что бы из этого метода одна временая переменая записывалась на form1 в  textbox1 как это сделать?
PM MAIL   Вверх
mr.DUDA
Дата 31.3.2008, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Цитата(Qhermit @  30.3.2008,  22:25 Найти цитируемый пост)
Помогите ! У  меня такая проблема: в методе класса ImageProcClass.cs делаются преобзарования матрицы изображения ну эт неважно, мне нужно что бы из этого метода одна временая переменая записывалась на form1 в  textbox1 как это сделать?

Проще всего так:
Код
            foreach (Form form in Application.OpenForms)
            {
                if (form is Form1)
                    ((Form1)form).textBox1.Text = "123";
            }

У текстбокса в свойствах выставить "Modifiers = Public".


--------------------
user posted image
PM MAIL WWW   Вверх
Qhermit
Дата 31.3.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 27.3.2008

Репутация: нет
Всего: нет



mr.DUDA, спасибо большое  smile 
PM MAIL   Вверх
Qhermit
Дата 31.3.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 27.3.2008

Репутация: нет
Всего: нет



mr.DUDA, а не подскажешь как сделать что бы при открытии главной формы ISO (запуска программы) данные грузились в textBox-ы неактивной формы form2

вот код где пишется в textBox-ы главной формы ISO при загрузки
Цитата

public ISO()
        {
            InitializeComponent();
            try
            {
                using (StreamReader sr = new StreamReader(@"H:\text.txt", Encoding.Default))
                {
                    string sFileText;
                    FileStream filestream = new FileStream(openFileDialog2.FileName, FileMode.OpenOrCreate, FileAccess.Read);
                    StreamReader streamreader = new StreamReader(filestream);
                    char[] chBuf = new char[filestream.Length];
                    streamreader.ReadBlock(chBuf, 0, (int)filestream.Length);
                    
                    textBox1.Text = sr.ReadLine();
                    textBox2.Text = sr.ReadLine();

                                     filestream.Close();
                    streamreader.Close();
                }
            }

            catch (Exception)
            {
                // обработка исключения  
            }
            
            
        }


Пробывал писать вместо
textBox1.Text = sr.ReadLine();
textBox1.Text = sr.ReadLine();

так 
Цитата

form2 f2 = new form2();
f2.textBox1.Text = sr.ReadLine(); 
f2.textBox2.Text = sr.ReadLine(); 


PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0928 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.