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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить доступ к текстовому полю на форме 
:(
    Опции темы
compaq
Дата 15.9.2009, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как получить доступ к текстовому полю на форме(Form1.textbox1) из класса в Program.cs


Код

    public class tes
    {

       public void test()
        {
            Form1 frm = new Form1();
            frm.textBox1.Text = "ля-ля-ля";
            frm.ShowDialog();
            string s = frm.textBox1.Text;
        }
    }


можно ли как то обойтись без создания экземпляра Form1 
PM MAIL   Вверх
mrbrooks
Дата 15.9.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(compaq @  15.9.2009,  11:23 Найти цитируемый пост)
можно ли как то обойтись без создания экземпляра Form1  

и при этом считать текст в дочернем контроле? нет.
PM MAIL   Вверх
compaq
Дата 15.9.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо за ответ но я видимо не совсем корректно выразился

допустим в form1 у меня обьявлен акцессор

Код

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public string testtext
        {
            get
            {
                return this.textBox1.Text;
            }
        }
    }


я хочу получить к нему доступ из Program.cs

Код

    public class tes
    {

       public void test()
        {
           Form1 frm = new Form1();
            //frm.textBox1.Text = "ля-ля-ля";
            frm.ShowDialog();
            string s = frm.testtext;
            MessageBox.Show(s);
        }
    }


Но видь у меня сначало создаётся одна форма причем совершенно пустая а после закрытыя первой появляется вторая с которой я уже работаю. А мне нужно что бы совершенно в произвольный момент времени я мог обратиться к значению из textBox1 на форме. То есть допустим пользователь ввел в textBox1 своё имя ущёл покурить потом наступило определённое событие и программа к примеру минут через 20 считала значение из textBox1.


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


Новичок



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

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



Код

namespace WindowsFormsApplication
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            string s;

            using (Form form = new Form())
            {
                TextBox tb = new TextBox();
                Button btn = new Button();


                tb.Location = new System.Drawing.Point(12, 30);
                tb.Name = "tb";
                tb.Size = new System.Drawing.Size(268, 20);
                tb.TabIndex = 1;
                tb.Text = "ля ля ля";

                btn.DialogResult = DialogResult.OK;
                btn.Location = new System.Drawing.Point(205, 238);
                btn.Name = "btnOk";
                btn.Size = new System.Drawing.Size(75, 23);
                btn.TabIndex = 0;
                btn.Text = "Ok";
                btn.UseVisualStyleBackColor = true;
                btn.Click += new System.EventHandler(btn_Click);

                form.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                form.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                form.ClientSize = new System.Drawing.Size(292, 273);
                form.Name = "Form";
                form.Text = "Form";

                form.Controls.Add(btn);
                form.Controls.Add(tb);

                form.ShowDialog();

                if (form.DialogResult == DialogResult.OK)
                    s = tb.Text;

            }
        }

        private static void btn_Click(object sender, EventArgs e)
        {
            //20 минут
            ((Form)((Button)sender).TopLevelControl).Close();
        }
    }
}




как - то так если я тебя правильно понял

Это сообщение отредактировал(а) psn - 15.9.2009, 13:58
PM MAIL   Вверх
compaq
Дата 15.9.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите что не так
Я знаю что я туплю но не пойму где smile 

Код

    public class tes
    {

       public void test(Form1 form_)
        {
            string s = form_.textBox1.Text;
            MessageBox.Show(s);
        }
    }
    
    static class Program
    {
        [STAThread]

        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            
            
            Form1 ddd = new Form1();
            Application.Run(ddd);

            tes ss = new tes();
            ss.test(ddd);
        }
    }


textBox1 стоит как паблик


PM MAIL   Вверх
Heinzz
Дата 15.9.2009, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

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



Код

   static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form1 fm1 = new Form1();
            fm1.textBox1.Text = "Hello";
            fm1.ShowDialog();
            //Application.Run(fm1);
            MessageBox.Show(fm1.textBox1.Text);
        }
    }

у меня работает


--------------------
user posted image
PM MAIL   Вверх
compaq
Дата 15.9.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Heinzz, 
Да но мне нужно не из Main вызывать а из внешнего класса 
Код

    public class tes
    {
       public void test(Form1 form_)
        {
            string s = form_.textBox1.Text;
            MessageBox.Show(s);
        }
    }

То есть я должен передать ссылку на форму только при передаче ссылки у меня не чего не происходит. Значения не считываются
PM MAIL   Вверх
KelTron
Дата 15.9.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(compaq @  15.9.2009,  15:19 Найти цитируемый пост)
Да но мне нужно не из Main вызывать а из внешнего класса 

Ну и что, в чём проблема то?

Код

[STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form1 fm1 = new Form1();
            fm1.textBox1.Text = "Hello";
            fm1.ShowDialog();
            //Application.Run(fm1);
           
            //MessageBox.Show(fm1.textBox1.Text);

            tes ss = new tes();
            ss.test(fm1);
        }





--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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