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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обратиться от класса к объекту 
:(
    Опции темы
N1ko
Дата 25.6.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

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 fff
{
    public partial class Form1 : Form
    {
        Hello hello = new Hello();
        public Form1()
        {
            InitializeComponent();
            textBox1.Text = hello.Hel();
        }
    }
    public class Hello
    {
        public string Hel()
        {
           return "Hello";  
        }
    }
}


А можно ли как то сразу из второго класса(Класса Hello) обратиться к textbox1 и присвоить его тексту какое нибуть значение?
PM MAIL ICQ   Вверх
Bogdan1024
Дата 25.6.2009, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

    public class Hello
    {
        public void Hel(TextBox tb)
        {
tb.Text = "Hello";
        }
    }



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


Опытный
**


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

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



А как обратиться к конкретному объекту, который уже существует textBox1?
PM MAIL ICQ   Вверх
Partizan
Дата 25.6.2009, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


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

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



N1ko, Bogdan1024 написал же пример кода

Код

using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace fff
{
    public partial class Form1 : Form
    {
        Hello hello = new Hello();
        public Form1()
        {
            InitializeComponent();
            hello.SetText(textBox1);
        }
    }
    public class Hello
    {
        public void SetText(TextBox tb)
        {
            if (tb == null)
                return;

             tb.Text = "Hello";  
        }
    }
}



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
ДобренькийПапаша
Дата 25.6.2009, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



textbox объявите как static. И во втором классе обращайтесь по имени класса, содержащего ваш текстбокс:
Код

Form1.textbox1.Text="Something";



Это сообщение отредактировал(а) ДобренькийПапаша - 25.6.2009, 16:59


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Partizan
Дата 25.6.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


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

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



ДобренькийПапаша, плохой вариант...очень плохой...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
ДобренькийПапаша
Дата 25.6.2009, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Чем плохой? Плохой вариант, это создавать экземпляры класса просто так...

p.s. Вот, нашёл, позволю себе процитировать Эндрю Троелсена, - "статические члены являются элементами, которые по мнению разработчика типа оказываются "слишком банальными", чтобы создавать для них экземпляры типа".

1)Создавать по любой причине экземпляры, это накладно для производительности, да и стиль по-моему не очень хороший.
2)Создание экземпляра, это умножение сущностей... а зачем это надо без веских причин?

Это сообщение отредактировал(а) ДобренькийПапаша - 25.6.2009, 19:01


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Partizan
Дата 25.6.2009, 23:46 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


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

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



ДобренькийПапаша, один текстбокс на все экземпляры? ))) ага-ага )))

1. создаём новый экземпляр формы и опа - в новом экземпляре в текстбоксе старый текст незнамо откуда...очень такой хороший user-experience будет =)

2. захотелось нам поменять формочку - удалили текстбокс....и го по всем двадцати пяти файлам удалять референсы на него и вобще думать на что заменять =)

Да и вообще это нарушение инкапсуляции....


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Экскалупатор
Дата 25.6.2009, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



Partizan, +1
PM MAIL ICQ   Вверх
ДобренькийПапаша
Дата 26.6.2009, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



А я полагал, что там один экземпляр...
Ладно, у него что-то учебное, так что по-барабану.

p.s. У меня есть такая ситуация, когда я текст из текстбокса одной формы должен был использовать в другой... но там класс очень большой и много полей, я сделал статиком текстбокс, по вышеизложенным причинам... (ну и так как знаю что эта форма одна и второй быть не может).

Или вы в любом случае не рекомендовали бы делать статиком какие бы то ни было элементы на формах?

Это сообщение отредактировал(а) ДобренькийПапаша - 26.6.2009, 07:36


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Partizan
Дата 26.6.2009, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


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

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



В любом случае.


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
ДобренькийПапаша
Дата 26.6.2009, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Это касается только элементов на форме?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Partizan
Дата 26.6.2009, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


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

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



ДобренькийПапаша, это касается и многого другого...но это совсем не значит, что использование static вообще надо исключить из употребления ;)


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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