Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Stenl1
4 / 4 / 2
Регистрация: 01.12.2009
Сообщений: 238
1

Перенос методов в другой класс

26.06.2012, 23:45. Просмотров 889. Ответов 4
Метки нет (Все метки)

Помогите правильно перенести методы в другой класс.Они там все завязаны с Webbrowser , и правильно их перенести у меня не получается.Чтоб вызывать их из главного окна
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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 Bot
{
    public partial class FormWindow : Form
    {
        Random rnd = new Random();
        Timer tm = new Timer();
 
        public FormWindow()
        {
            tm.Tick += new EventHandler(timer1_Tick);
            wb = new WebBrowser();
            InitializeComponent();
        }
 
        private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (wb.Document.GetElementById("login-email") != null)
            {
                wb.Document.GetElementById("login-email").InnerText = textBoxEmail.Text;
                wb.Document.GetElementById("login-password").InnerText = textBoxPass.Text;
                Method_1(new string[] { "button luxury" })[0].InvokeMember("click");
            }
            if (groupBoxInfo.Text == "")
                PersInfo();
            tm.Start();
 
            if (e.Url.AbsoluteUri == "http://www.moswar.ru/alley/")
            {
                tm.Stop();
            }
        }
 
        //переход на странницу
         public void method_8(string string_9, string string_10)
        {
            this.wb.Stop();
            string additionalHeaders = "Content-Type: application/x-www-form-urlencoded" + Environment.NewLine;
            this.wb.Navigate(string_9, "", Encoding.UTF8.GetBytes(string_10), additionalHeaders);
            
        }
 
        
        //Получение атрибутов классов
         public List<HtmlElement> Method_1(params string[] ClassNames)
         {
             List<HtmlElement> list = new List<HtmlElement>();
             foreach (HtmlElement htmlElement in wb.Document.All)
             {
                 for (int i = 0; i < ClassNames.Length; i++)
                 {
                     string b = ClassNames[i];
                     if (htmlElement.GetAttribute("className") == b)
                     {
                         list.Add(htmlElement);
                         break;
                     }
                 }
             }
             return list;
         }
 
        //Нажатие кнопки старт
    
        private void ButtonStart_Click(object sender, EventArgs e)
        {
            if (textBoxEmail.Text != "" && textBoxPass.Text != "")
            {
                wb.Navigate("http://moswar.ru");
            }
            else
                MessageBox.Show("Введите логин и пароль!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
 
        //Переход на страницу по таймеру
        private void timer1_Tick(object sender, EventArgs e)
        {
           tm.Interval = rnd.Next(10000, 15000);
           method_8("http://www.moswar.ru/alley/" ,"");
        }
 
        //Информация по персонажу
        public void PersInfo()
        {
            try
            {
                groupBoxInfo.Text = Method_1(new string[] { "name" })[0].InnerText.Trim();
                labelHealt.Text += wb.Document.GetElementById("currenthp").InnerText + "/" + wb.Document.GetElementById("maxhp").InnerText;
                labelMoney.Text += Method_1(new string[] { "tugriki-block" })[0].InnerText.Trim();
                labelRuda.Text += Method_1(new string[] { "ruda-block" })[0].InnerText.Trim();
 
            }
            catch
            { }
        }
 
 
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2012, 23:45
Ответы с готовыми решениями:

Перенос методов в библиотеку
Привет народ. Можете помочь? Мне надо написать простой файловый менеджер, все...

Можно ли вложить класс в другой класс чтобы были доступны приватные методы первого класса
Добрый день. Вопрос - можно ли в C# вложить класс в другой класс чтобы были...

Сколько методов имеет каждый класс в этом коде?
Подскажите пожалуйста, сколько методов имеет каждый класс в этом коде. ...

Перенос на другой ПК
Доброго времени суток, столкнулся с проблемой переноса проекта на другой пк....

Перенос контролов на другой tabPage
На форме имеется контрол tabControl. В нём есть две страницы (tabPage1 и...

4
dondublon
2160 / 1076 / 215
Регистрация: 17.03.2012
Сообщений: 6,514
Записей в блоге: 5
27.06.2012, 08:04 2
не вижу, где у вас объявлен wb (область видимости).
если это контрол на форме - тогда почему вы его сами создаёте?

самый простой вариант переноса методов в другой класс - в каждый метод добавить webbrowser как параметр.
вариант получше - сделать класс-обертку над webbrowser.
0
Stenl1
4 / 4 / 2
Регистрация: 01.12.2009
Сообщений: 238
28.06.2012, 21:12  [ТС] 3
А продемонстрируй второй вариант .
0
dondublon
2160 / 1076 / 215
Регистрация: 17.03.2012
Сообщений: 6,514
Записей в блоге: 5
28.06.2012, 21:54 4
привеино так:
C#
1
2
3
4
5
6
7
8
public class WebBrowserWrapper
{
   WebBroswer wb;
   WebBrowserWrapper(WebBroswer awrapper)
  {
    wb = awrapper;
  }
}
после этого туда переносишь все методы.
0
Stenl1
4 / 4 / 2
Регистрация: 01.12.2009
Сообщений: 238
28.06.2012, 22:09  [ТС] 5
Это значит из главного класса надо будет вызывать примерно так. То есть создавать объект класса
WebBrowserWrapper nc = new WebBrowserWrapper(webbrowser);
webbrowser - это имя браузера в главной форме.
А далее :
nc.method8(......);
0
28.06.2012, 22:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2012, 22:09

Перенос из стека в другой стек
Всем привет, дано задание Пользователем вводятся числа, которые...

Перенос строк из одного файла в другой
Прошу помочь написать программу которая переносит текст из одного текстового...

Перенос значения из одного класса в другой
Хочу значение из одного класс перенести в другой класс и вывести public...


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

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

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