![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Stratus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Коллеги
как получить доступ к свойству text обьекта texbox, если при создании Вижуал создает отдельный клас form1. а из точки входа его невидно... я написал приблизительно следующее: public string textbx { get { return textBox1.Text; } set { textBox1.Text = value; } } private void button1_Click(object sender, EventArgs e) { Program.func(); } ........ public static void func() { Form1 fr = new Form1(); Console.WriteLine(fr.textbx); } |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
что то я совсем не понял твое сообщение, не общий смысл вроде ясен, но что куда и откуда ноги растут я чето не догнал...
Добавлено через 51 секунду может выложи больше кода, и попробуй описать более подробно... Добавлено через 3 минуты и 43 секунды особенно вот это заинтересовало: private void button1_Click(object sender, EventArgs e) { Program.func(); } это типа из формы по нажатию кнопки ты создаешь еще одну форму, а в ней уже пытаешься в текст боксу достучаться? |
|||
|
||||
| Stratus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Ну суть на самом деле простая......
Нужно например из метода Main, получить доступ к полю Text обьекта Textbox, который находиться на форме. Поскольку форма с обьектом рисовалась в Вижуал Студио, то вижуал студио создает там отдельный класс Form1, в ктором инициализирует все обьекты формы. Однако из метода Main невидно это поле Text обьекта TextBox и сам обьект. Поэтому я попытался в классе Form1 создать свойство класса и вытащить из него это поле обьекта. далее в меитоде Майн создал новый экземпляр обьекта и достал свойство. Получилось увидеть но неполучилось вывести сам текст(на консоль), ошибок теперь нет. Есть ли другие варианты напрямую получить значения свойства? И почему невыводиться инфа на консоль? |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 13 Всего: 49 |
Stratus, покажи код.
|
|||
|
||||
| Экскалупатор |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
ну для этого не нужно было создавать второй раз форму. у меня все работает. вот код:
форма содержит текстбокс, и кнопку, работает вот так:
вроде ничего страшного... |
||||
|
|||||
| Stratus |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Вот код
в консоли пусто....
Это сообщение отредактировал(а) Stratus - 8.7.2009, 00:35 |
||||||
|
|||||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Stratus, так ты новый экземпляр формы создаёшь.
и пытаешься получаешь значение его свойства, а там пусто, в то время как ожидаешь увидеть значение свойства первого экземпляра(вызвавшего функцию). -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
ну во-первых ты создаешь новую форму, но ты ее не отображаешь, т.е. она существует только в памяти, вопрос куда пользователю ввести что то? исходя из этого ничего и не может быть отображено, потому как формы нету, нужно сделать
а во-вторых, НЕ НУЖНО СОЗДАВАТЬ ВТОРУЮ ФОРМУ, открой одну форму и потом с ней работай |
|||
|
||||
| Stratus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Благодарю за пояснение
сделал не логично согласен но просто формы вручную создавать неудобно, поэтому рисую в Вижуал котрый подсатвляет код автоматически..... Меня мучает один вопрос.... как теперь из класса Program увидеть свойство класса Form1.textbx или напрямую(так конечно еще лучше) обратиться к обьекту textBox1 и вытащить из него свойство text ведь класс form1 публичный..... проблема втом что Вижуал создает класс формы автоматически а обьектов формы невидно за пределами класса(form1)?! Это сообщение отредактировал(а) Stratus - 8.7.2009, 10:52 |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
я ж написал, руками запускаешь форму
а потом работаешь с ее свойством. т.е. сначала нужно создать, что то а потом пытаться с ним работать, а не наоборот, пока ты не создашь экземпляр формы ты не сможешь с ним работать есть еще вариант сделать свойство формы статичным, тогда оно будет доступно всегда, но это не верный подход и часто может вызывать ошибки, так что лучше делай через свойство, вот рабочий пример, попробуй разобраться: Присоединённый файл ( Кол-во скачиваний: 8 )
test2.rar 15,85 Kb |
|||
|
||||
| diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Перепиши функцию так
А вызывай её так
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
| Stratus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Согласен так работать будет... Однако я не понимаю зачем руками запускать форму когда там стоит - Application.Run(new Form1()); Меня мучает один вопрос почему нельзя в методе Main увидеть обьект textBox1????? Добавлено через 14 минут и 15 секунд diadiavova - спасибо работает |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
потому что он объявлен как приват, объяви его пабликом и все будет видно. |
|||
|
||||
| Stratus |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
неполучается........ я в классе form1 cделал так
пробовал вызвать в методе Main - невидно |
||||||
|
|||||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
Stratus, попробуйте просто в дизайнере открыть вкладку свойства тектстбокса и там поставить паблик.
мне вот интересно а как вы его вызываете в маине, если у вас нету экземпляра класса Form1? или все таки есть? покажите код пожалуйста. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |