Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
_Stanley
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 16
1

Как обратится к форме из обработчика события?

19.03.2010, 09:40. Просмотров 2394. Ответов 16
Метки нет (Все метки)

есть слушатель на завершение:
C#
1
2
WebClient user = new WebClient();
user.DownloadFileCompleted += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
но оказалось что в функции обработчика событий:
C#
1
private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs exc)
не видна форма - как обратиться к Label размещенному на форме?
и к методам (функциям) из этого класса?

в Action Script можно обратиться к объекту слушателя и потом к его родителю - форме! как это реализуеться на C#

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2010, 09:40
Ответы с готовыми решениями:

Отмена обработчика события
Я разрабатываю калькулятор (все через это прошли наверно). Когда я в поле для...

Лямбда обработчик события. Нужно вернуть значение вовне обработчика, во внешний код
Я хочу сделать как-то так: Uri GetUriBlaBlaBla() { var wb = new...

Как нарисовать линии на динамической форме без события Paint
На основной форме есть кнопка, по нажатию кнопки хотелось бы создать новую...

Как обратится к масиву обьектов
Просматрите пожалуйста код! Не могу обратится к массиву объектов созданному в...

Чит для Css: как обратится к client.dll
В Css есть файл client.dll , который отвечает за клиентские опции. Когда на...

16
MAcK
Комбайнёр
1574 / 672 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
19.03.2010, 10:00 2
На форму кинул комбобокси получилось ...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            WebClient web = new WebClient();
            web.DownloadFileCompleted += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
            
        }
 
 
 
        private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs exc)
        {
            this.comboBox1.Text = "Hello";
        }
0
_Stanley
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 16
19.03.2010, 10:14  [ТС] 3
у меня по таймеру идет чтение данных с тхт файла по инет урл!

Вижу что когда вызов не с формы а с бокса - то можно обратиться к этому боксу! но меня интересует форма и ее методы и переменные
0
MAcK
Комбайнёр
1574 / 672 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
19.03.2010, 10:27 4
Цитата Сообщение от _Stanley Посмотреть сообщение
у меня по таймеру идет чтение данных с тхт файла по инет урл!

Вижу что когда вызов не с формы а с бокса - то можно обратиться к этому боксу! но меня интересует форма и ее методы и переменные
Объясните! Код в студию!
0
_Stanley
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 16
19.03.2010, 12:27  [ТС] 5
Цитата Сообщение от MAcK Посмотреть сообщение
Объясните! Код в студию!
в теме Чтение данных с инет URL (ошибки соединения)
пришел к мнению что нужно реализовывать через обработчик!

Вот и интересует как обратиться? код данного вопроса тут в первом посте!

Добавлено через 3 минуты
и в теме Чтение данных с инет URL (ошибки соединения)
не было принято верного и однозначного решения! темы разные! зачем закрывать?!
0
Floating
91 / 78 / 9
Регистрация: 10.03.2010
Сообщений: 172
19.03.2010, 12:29 6
Выложи полный код, а не частями. Код MAcK работает.
0
MAcK
Комбайнёр
1574 / 672 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
19.03.2010, 13:13 7
Цитата Сообщение от _Stanley Посмотреть сообщение
и в теме Чтение данных с инет URL (ошибки соединения)
не было принято верного и однозначного решения! темы разные! зачем закрывать?!

Не по теме:

Потому что тема пошла по другому вопросу ...



Не важно как Вы создаёте контрол, руками или через студию кидаете на форму, this <- это форма.
0
Floating
91 / 78 / 9
Регистрация: 10.03.2010
Сообщений: 172
19.03.2010, 13:19 8
Цитата Сообщение от MAcK Посмотреть сообщение

Не по теме:

Потому что тема пошла по другому вопросу ...



Не важно как Вы создаёте контрол, руками или через студию кидаете на форму, this <- это форма.
Позвольте с вами не согласиться. Может он создает в классе?
И this форма только для функций этой формы
0
MAcK
Комбайнёр
1574 / 672 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
19.03.2010, 13:21 9
Тогда это класс. Мы сейчас говорим про КЛАСС формы<Form1>, а не самописного класса.
0
Floating
91 / 78 / 9
Регистрация: 10.03.2010
Сообщений: 172
19.03.2010, 13:22 10
Цитата Сообщение от MAcK Посмотреть сообщение
Тогда это класс. Мы сейчас говорим про КЛАСС формы<Form1>, а не самописного класса.
Из повествования автора не понятно класс ли это Form1. Судя по тому, что твой код не работает велика вероятность самописного класса
0
_Stanley
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 16
21.03.2010, 14:00  [ТС] 11
это основной класс и основной код для формы
0
_Stanley
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 16
23.03.2010, 11:49  [ТС] 12
так как обратиться?
0
MAcK
Комбайнёр
1574 / 672 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
23.03.2010, 11:51 13
Кидайте свой проект
0
_Stanley
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 16
24.03.2010, 23:02  [ТС] 14
урезал - оставил нужное. Это основной класс к основной форме - на которой расположеные текстовые поля!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Reflection;
using System.Net;
using System.Net.NetworkInformation;
using System.IO;
using System.Media;
using System.Xml;
 
namespace IsengardRealm
{
    public partial class MainForm : Form
    {
        Timer Timer1 = new Timer();
 
        string data;
        string read;
 
        WebClient user = new WebClient(); 
       
        public MainForm()
        {
           InitializeComponent();
 
           user.DownloadFileCompleted += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
 
            // Настраиваем объект Timer
            Timer1.Interval = 1000;
            Timer1.Enabled = true; 
            Timer1.Tick += new EventHandler(TimerTick);
        }       
 
        // Этот метод будет вызываться каждый тик
        private void TimerTick(object sender, EventArgs e)
        {
            RefreshStatus();
        }
 
        private void RefreshStatus()
        {
            try { data = Encoding.UTF8.GetString(user.DownloadData("http://www.isengard.su/tirion.txt")); }
            catch (Exception exc) { }
        }
 
        private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs exc)
        {
            if (exc.Error == null) read = data; // Записываем данные которые считались
        }      
    }
}
0
MAcK
Комбайнёр
1574 / 672 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
25.03.2010, 09:54 15
C#
1
2
3
4
5
6
7
8
9
10
        private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs exc)
        {
            if (exc.Error == null) read = data; // Записываем данные которые считались
            this.MyLabel.Text = "MyLabel visible";
            MyFunctionCall(<MyParameter>);
 
        }  
        private void MyFunction();
{
}
0
_Stanley
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 16
25.03.2010, 13:34  [ТС] 16
в том то и проблема что this не работает, и соответственно не обратиться не к переменным ни к методам!
0
Tox1c
1 / 1 / 0
Регистрация: 27.03.2010
Сообщений: 11
27.03.2010, 22:32 17
C#
1
2
ListBox listbox= (ListBox)Application.OpenForms[1].Controls["listbox1"];
listbox.Items.Add("dsdfgds");

делаешь экземпляр, самое главное в квадратных скобках правильно написать название того к чему тебе надо сослаться, также в опен формс идёт счёт с 0... так что если у тебя например 3 форма, то вместо 3 надо 2 написать.
1
27.03.2010, 22:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2010, 22:32

Как обратится к подключению?
Например если соединение с конкретной базой создано при помощи мастера через...

Как восстановить работу обработчика события?
Здоров всем! Иногда обработчик события (кнопка, таймер) по неизвестной мне...

Как обратится к форме робокассы?
Здравствуйте! Делаю сайт http://stroka.5ria.ru/, нужно сделать подстановку в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru