Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 07.11.2019
Сообщений: 11

Нужно из одного класса перенести массив строк в главный класс формы

15.11.2020, 22:10. Показов 439. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Data;
using System.Threading;
using System.Text;
using System.Drawing;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Cryptography.X509Certificates;
 
namespace Сервер
{
    public delegate void MessageArr(string smess); //создал делегат для получения сообщения
    public partial class Form1 : Form
    {
        public MessageArr myDelegate;
        Connection data = new Connection();
        public Form1()
        {
            InitializeComponent();
        }
 
        private void label3_Click(object sender, EventArgs e)
        {
 
        }
 
        private void SelectBut_Click(object sender, EventArgs e)
        {
            var filePath = string.Empty;
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.InitialDirectory = "c:\\";
            openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            openFileDialog.FilterIndex = 2;
            openFileDialog.RestoreDirectory = true;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                filePath = openFileDialog.FileName;
                string rP = File.ReadAllText(filePath);
                string[] rPlist = rP.Split(' ');
                for(int j = 0; j < rPlist.Length; j++)
                {
                    RPListText.Text += rPlist[j];
                    RPListText.Text += Environment.NewLine;
                }
            }
        }
 
        private void GetProcDataBut_Click(object sender, EventArgs e)
        {
            data.Server();
            string[] srPl = data.rPl.Split(' ');
            for (int k = 0; k < srPl.Length; k++)
            {
                RPListText.Text += srPl[k];
                RPListText.Text += Environment.NewLine;
            }
        }
    }
    class Connection
    {
        private string rpl;
        static int port = 4444;
        static TcpListener listener;
        public void Server()
        {
            try
            {
                listener = new TcpListener(IPAddress.Parse("127.0.0.1"), port);
                listener.Start();
                while (true)
                {
                    TcpClient client = listener.AcceptTcpClient();
                    ClientObject clientObject = new ClientObject(client);
                    Thread clientThread = new Thread(new ThreadStart(clientObject.Process));
                    clientThread.Start();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (listener != null)
                    listener.Stop();
            }
        }
        public string rPl
        {
            get { return rpl; }
        }
    }
    public class ClientObject
    {
        public TcpClient client;
        public ClientObject(TcpClient tcpClient)
        {
            client = tcpClient;
        }
 
        public void Process()
        {
            NetworkStream stream = null;
            try
            {
                stream = client.GetStream();
                byte[] data = new byte[64];
                while (true)
                {
                    StringBuilder builder = new StringBuilder();
                    int bytes = 0;
                    do
                    {
                        bytes = stream.Read(data, 0, data.Length);
                        builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                    }
                    while (stream.DataAvailable);
                    string message = builder.ToString();
                    data = Encoding.Unicode.GetBytes(message);
                    stream.Write(data, 0, data.Length);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (stream != null)
                    stream.Close();
                if (client != null)
                    client.Close();
            }
        }
    }
}
В классе ClientObject программа сервера получает сообщение (данные о процессах из диспетчера задач) от клиента. Далее необходимо сделать так, чтобы в основном классе формы можно было использовать переменную message. Знаю, что можно это реализовать при помощи делегата, но не понимаю как. Подскажите, пожалуйста, как можно передать эту переменную при помощи делегата. Если при помощи делегата не получится, то можно и другой способ, главное, чтобы работало.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.11.2020, 22:10
Ответы с готовыми решениями:

Есть два класса. Как из одного класса перенести данные в другой класс?
Есть два класса : планета и диспетчер планет. Диспетчер имеет информацию о планетах: их названия, координаты (в двумерном пространстве) и...

Создать массив строк, каждая из которых содержит описание одного из методов класса
Исходный текст представляет описание класса на C#. Напишите процедуру, создающую массив строк, каждая из которых содержит описание одного...

Обращение с формы одного класса к объектам формы другого класса
Такой вопрос: у меня есть основной класс, в котором описано текстовое поле textpane на форме, есть другой класс в котором есть списки(...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2020, 22:10
Помогаю со студенческими работами здесь

Процедура, создающая массив строк, каждая из которых содержит описание одного из полей класса
2. Исходный текст представляет описание класса на C#. Напишите процедуру, создающую массив строк, каждая из которых содержит описание...

Нужно сделать массив не строк, а объектов класса Student
теперь минусы ) 1. Никаких goto, никогда 2. Я просил сделать массив не строк, а объектов класса Student получается, что у тебя нет...

Напишите процедуру, создающую массив строк, каждая из которых содержит описание одного из методов класса
Всем привет. Помогите пожалуйста. Исходный текст представляет описание класса на C#. Напишите процедуру, создающую массив строк,...

Перенести из одного класса в другой
Есть код в классе RC4 public class RC4 { private void swap(byte array, int ind1, int ind2) { byte temp = array; ...

Как перенести из одного класса в другой
class Setting { static void Setting() { const string needPatch = &quot;C:\\&quot;; const string...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru