0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 13
1

Передача текста из потока в Textbox.

20.04.2010, 18:56. Показов 3604. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
143
144
145
146
147
148
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;
using System.Threading;
using System.Net.Sockets;
using System.IO;
 
namespace tcpserver
{
    
    public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
        }
 
 
      
 
        public class Server // класс сервера.
        {
            public RichTextBox richTextBox3;
            private int LocalPort;
            private Thread ServThread; // экземпляр потока
            TcpListener Listener; // листенер
            public Socket ClientSock;
 
 
            public delegate void UpdateTextCallback(string text);
 
            private void UpdateText(string text)
            {
                // Set the textbox text.
                //lock (richTextBox3);
                richTextBox3.Text = text;
            }
           
 
            public void Create(int port)
            {
                LocalPort = port;
                ServThread = new Thread(()=>ServStart(ClientSock));
                ServThread.Start(); // запустили поток. Стартовая функция – 
                // ServStart, как видно выше
               
            }
 
            public void Close() // Закрыть сервер
            {
                Listener.Stop();
                ServThread.Abort();
                return;
            }
 
 
 
            public void ServStart(Socket ClientSock)
            {
                byte[] cldata = new byte[1024]; // буфер данных
                Listener = new TcpListener(LocalPort);
                Listener.Start(); // начали слушать
                int i = 0;
 
                try
                {
                     ClientSock = Listener.AcceptSocket(); // пробуем принять 
                    // клиента
                }
                catch
                {
                    ServThread.Abort(); // нет – жаль(
                    return;
                }
                
                    while (ClientSock.Connected)
                    {
                        try
                        {
                            i= ClientSock.Receive(cldata); // попытка чтения 
                            // данных
                            
                        }
                        catch
                        {
                   
                        }
 
                       // lock (richTextBox3)
                        {
                            richTextBox3.BeginInvoke(new UpdateTextCallback(this.UpdateText),
                            new object[] { "<<" + Encoding.ASCII.GetString(cldata).Trim() });  //Тут ошибка
                           
                        }
                }
            }
        }
 
        private void сетиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 _myForm = new Form2();
            _myForm.ShowDialog();
        }
 
        public void button1_Click(object sender, EventArgs e)
        {
            
            int port;
            
            try
            {
                StreamReader pt = new StreamReader("c://pts.txt"); //считываем из файла введенный IP и порт
                port = Convert.ToInt32(pt.ReadLine());
            }
            catch
            {
                System.Windows.Forms.MessageBox.Show("Ошибка чтения из файла");
                return;
            }
            
            Server serv = new Server();
 
            try
            {
                serv.Create(port);
            }
            catch
            {
                System.Windows.Forms.MessageBox.Show("Ошибка создания сервера");
                return;
            }
           System.Windows.Forms.MessageBox.Show("Сервер успешно создан." + " " + "Порт:" + port);
        }
 
        private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
 
        }
 
 
    }
}


При получении сообщения из клиента, выскакивает ошибка что "В экземпляре объекта не задана ссылка на объект." Речь я так понимаю про richTextBox3.(Ссылка на нее Null)

http://blogs.msdn.com/csharpfa... 91685.aspx делаю по этой инструкции.

Добавлено через 7 часов 14 минут
http://ifolder.ru/17381398
Вот ссылка на проект. Там Папки tcpklient и tcpserver. В клиенте в настройках сети указать IP и Порт, на сервере порт. С клиента отправить сообщение на сервере.

50 ЯД тому кто поможет!

Добавлено через 31 минуту
C#
1
2
3
4
public Server(RichTextBox m_richTextBox)
{
richTextBox3 = m_richTextBox;
}
Ответ на мой вопрос)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2010, 18:56
Ответы с готовыми решениями:

Передача данных в textbox из другого потока
Здравствуйте. Решил я уйти от приложений в консоли и перейти на WF, и уже жалею. Вообщем проблема...

Передача потока данных из listview в textbox и обратно
Доброго дня всем.) Есть форма1 с listview. ListView считывает текстовый файл с данными.(Пример...

Передача текста в textbox
Как передать текст из файла открываемого через openFileDialog ( .txt ) в textbox при создании...

Передача текста из textbox в другой класс
Собственно можно ли вообще такое осуществить и как? Если есть на форме текстбокс, куда я ввожу...

4
0 / 0 / 0
Регистрация: 03.03.2011
Сообщений: 6
20.03.2011, 12:08 2
Взял твой код поиграться, ток не понял, куда это вставлять то

C#
1
2
3
4
public Server(RichTextBox m_richTextBox)
{
richTextBox3 = m_richTextBox;
}
проблема та-же, не могу выводить в текстбокс из класса Server,
помогите врубиться люди добрыя!
0
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
20.03.2011, 14:54 3
Это конструктор класса Server. В определение этого класса и вставлять. Проблема была в том, что RichTextBox, объявленный как поле класса Server - это не тот RichTextBox, который объявлен (и создан автоматически) на форме.
1
0 / 0 / 0
Регистрация: 03.03.2011
Сообщений: 6
20.03.2011, 22:56 4
Значит правильно, как конструктор в класс Server и вставляю.

После этого говорит:
"tcpserver.Form1.Server" не содержит конструктор, который принимает аргументы "0"
на
C#
1
Server serv = new Server();
вот это-то и не могу понять
0
139 / 137 / 21
Регистрация: 26.01.2010
Сообщений: 350
21.03.2011, 00:21 5
Цитата Сообщение от Redddy Посмотреть сообщение
Server serv = new Server();
При объявлении нужно указать экземпляр класса RichTextBox. Например
C#
1
Server serv = new Server(this.richTextBox2);
1
21.03.2011, 00:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2011, 00:21
Помогаю со студенческими работами здесь

Передача текста из TextBox в переменную второй формы
Здраствуйте! Нужна Ваша помощь: В первой форме есть TextBox, в который записывается путь к...

Сравнение текста введенного в Textbox по name. При этом Textbox создан динамически
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Сравнение значений динамически заданных textBox, и отображение текста в многострочном Textbox
Часть первая. Дано: динамически создаваемые TextBox'ы TextBox tb = new TextBox; for (int i=0...

Как узнать, что длина текста в TextBox-е превышает ширину самого TextBox-а
У меня есть TextBox. Нужно узнать, выходит ли текст за границы TextBox-a, если да, то выполняется...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru