Steffan Harris
Steffan Harris

Reputation: 9336

InitializeComponent in C# doesn't exsist

I am using .net 4 and I don't see the InitializeComponent method. Is it there?

Here is my class file that i am using

using System;
using System.Drawing;  //must add reference
using System.ComponentModel;
using System.Collections;
using System.Windows.Forms;  //must add reference
using System.Threading;
using System.Net.Sockets;
using System.IO;


public class Client : System.Windows.Forms.Form
{
    private System.Windows.Forms.TextBox inputTextBox;
    private System.Windows.Forms.TextBox displayTextBox;

    private NetworkStream output;
    private BinaryWriter writer;
    private BinaryReader reader;

    private string message = "";
    private Thread readThread;


    private System.ComponentModel.Container components = null;

    //default constructor
    public Client()
    {

        InitializeComponent();

        readThread = new Thread(new ThreadStart(RunClient));
        readThread.Start();
    }

    [STAThread]
    static void Main()
    {
        Application.Run(new Client());
    }

    protected void Client_Closing(object sender, CancelEventArgs e)
    {
        System.Environment.Exit(System.Environment.ExitCode);
    }


    //sends text the user typed to server
    protected void inputText_KeyDown(object sender, KeyEventArgs e)
    {

        try
        {
            if (e.KeyCode == Keys.Enter)
            {
                writer.Write("CLIENT>>>> " + inputTextBox.Text);

                displayTextBox.Text += "\r\nCLIENT>> " + inputTextBox.Text;

                inputTextBox.Clear();
            }


        }
        catch
        {
            displayTextBox.Text += "\nError writing object";
        }
    } //end method inputTextBox_KeyDown


    //connects to server and display server-generated text
    public void RunClient()
    {

        TcpClient client;

        //Instantiate TcpClient for sending data to server
        try
        {
            displayTextBox.Text += "Attempting connection...\r\n";

            //Step 1: create TcpClient and connect to server
            client = new TcpClient();
            client.Connect("localhost", 5000);

            //Step 2: Get NetworkStream associated with TcpClient
            output = client.GetStream();

            //creates objects for writing and reading across streams
            writer = new BinaryWriter(output);
            reader = new BinaryReader(output);

            displayTextBox.Text += "\r\nGot I/O stream\r\n";

            inputTextBox.ReadOnly = false;

            //loop until server signals termination
            do
            {

                //Step 3: processing phase
                try
                {
                    //read message from the server
                    message = reader.ReadString();
                    displayTextBox.Text += "\r\n" + message;
                }

                //handle exception if error in reading server data
                catch (Exception)
                {
                    System.Environment.Exit(System.Environment.ExitCode);
                }


            } while (message != "SERVER>>> TERMINATE");

            displayTextBox.Text += "\r\nClosing connection.\r\n";

            //Step 4: close connection
            writer.Close();
            reader.Close();
            output.Close();
            client.Close();
            Application.Exit();

        }
        catch (Exception error)
        {
            MessageBox.Show(error.ToString());
        }
    }

}

Upvotes: 1

Views: 4259

Answers (1)

KeithS
KeithS

Reputation: 71591

The method InitializeComponent is not defined or abstracted by Control or any of its children (like Form); it is generated, 100% from scratch, by the designer. It is also private; you cannot call it from outside the control class. If you have not developed this Control class from the designer, you do not have an InitializeComponent method unless you create one yourself.

Upvotes: 7

Related Questions