Skocz do zawartości

listbox nie dodaje "itemów"

Polecane posty

Autor tematu Napisano (edytowany)

Witam.

mam problem z listbox;em(konsola: w kodzie)

ponieważ się nie dodaje żaden "item"

jak dodam Message box;a do m2:
MessageBox.Show(">> " + mg2);
to w message box'ie jest ta wiadomość
https://screenshot.sh/m7QvBxfVj352K

 

Form2(Server):

 

 

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.Collections;
using System.Net.Sockets;
using System.Net;
using System.Threading;

namespace xxx
{
    public partial class Form2 : Form
    {
        public static Hashtable clientsList = new Hashtable();

        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            startServer();
        }

        public static void startServer()
        {
            Thread t = new Thread(cs);
            t.Start();
        }

        public static void cs()
        {
            TcpListener serverSocket = new TcpListener(IPAddress.Any, 8898);
            TcpClient clientSocket = default(TcpClient);
            int counter = 0;

            serverSocket.Start();
            m("Chat Server Started ....");
            counter = 0;

            while (true)
            {
                counter += 1;
                clientSocket = serverSocket.AcceptTcpClient();

                byte[] bytesFrom = new byte[10025];
                string dataFromClient = null;

                NetworkStream networkStream = clientSocket.GetStream();
                networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
                dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
                dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));

                clientsList.Add(dataFromClient, clientSocket);

                broadcast(dataFromClient + " Joined ", dataFromClient, false);

                m(dataFromClient + " Joined chat room ");
                handleClinet client = new handleClinet();
                client.startClient(clientSocket, dataFromClient, clientsList);
                Thread.Sleep(100);
            }

            clientSocket.Close();
            serverSocket.Stop();
        }

        public static void m(string mg)
        {
            Form2 sv = new Form2();
            sv.m2(mg);
        }

        public void m2(string mg2)
        {
            konsola.Items.Add(">> " + mg2);
        }

        public static void broadcast(string msg, string uName, bool flag)
        {
            foreach (DictionaryEntry Item in clientsList)
            {
                TcpClient broadcastSocket;
                broadcastSocket = (TcpClient)Item.Value;
                NetworkStream broadcastStream = broadcastSocket.GetStream();
                Byte[] broadcastBytes = null;

                if (flag == true)
                {
                    broadcastBytes = Encoding.ASCII.GetBytes(uName + " says : " + msg);
                }
                else
                {
                    broadcastBytes = Encoding.ASCII.GetBytes(msg);
                }

                broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length);
                broadcastStream.Flush();
            }
        }
    }
}
 

 

 

Edytowano przez leszhack

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Pani Kasia

Strzelę bo nie znam się na tym, ale Items.Add przyjmuje jako parametr wartość typu object więc trzeba najpierw zrobić rzutowanie ">> " + mg2 na ten typ chyba.


4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Pani Kasia


public class Foo

{

public void Data1()

{

}

 

public static void Data2()

{

Foo foo = new Foo();

foo.Data1();

}

}

 


https://stackoverflow.com/questions/1360183/how-do-i-call-a-non-static-method-from-a-static-method-in-c

Edytowano przez Agent K

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Autor tematu Napisano (edytowany)

.. Czyli nie to bo mam to samo w kodzie .. to czemu itemy się nie dodają w listbox..

        public static void m(string mg)
        {
            Form2 sv = new Form2();
            sv.m2(mg);
        }

Ok zrobiłem z invoke.

Edytowano przez leszhack

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×
Okienko zamknie się za 5 sekund...