Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 6
1

Создание экземпляра класса

27.05.2014, 21:10. Показов 2580. Ответов 9
Метки нет (Все метки)

Здравствуйте, форумчане. Требуется Ваша помощь, если кто-то найдет минутку, буду очень благодарен. Ситуация следующая- мной в консольном проекте среде VisualStudio13 был разработан класс ServerConnector, который содержит методы для обмена информацией с сервером. в этом же консольном проекте код

Код
 ServerConnector MyConector;
        dtTempTable = new DataTable();
        MyConector = new ServerConnector("192.168.0.103", 2200);
        dtTempTable = MyConector.exequteSQLRequest("INSERT INTO Reestr(Id,Name,SurName,BirdthData,City,Phone,parol,rparol) values ('2','Romah','Baj','25','Borik','093','123','123')");
        Console.WriteLine("Request Exequted");
выполнялся без проблем, но только в проекте с консольним приложением. В проекте WindowsForms етот фрагмент кода не работает

клиент должен иметь графическую оболочку, я создал для этого проект WIndowsForms, в который я поместил этот класс. Проблема заключается в том, что не могу создать в глобальной области имен проекта экземпляр этого класса, так как к нему будет обращаться обработчики событий нескольких форм.

методом тыка я разобрался, что можна определить класс как статический и все методы придется определить как статические, но что-то мне подсказывает что это неправильный путь решения задачи. наверняка есть какие-то особенности проектов WindowsFormsкоторых я незнаю, помогите пожалуйста разобраться.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2014, 21:10
Ответы с готовыми решениями:

Изменение texbox.text из другого класса / создание экземпляра единственной формы
Здравствуйте, перелопатила кучу инфы, но что-то никак. Такая ситуация: Есть класс формы: public...

Передача экземпляра класса из формы в форму
Собственно, не уверен, что нужно именно то, что я написал в сабже. Ситуация такая: имеется form1...

Ошибка при создании экземпляра класса
Почему выдает такую ошибку?(С base уже пробовал, не работает) Код программы: Form1.cs: using...

Доступ к полю StructLayout из экземпляра класса
Есть структура с переналоженными полями: internal struct w64 { ...

9
2144 / 1281 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
27.05.2014, 21:15 2
Цитата Сообщение от pj-infest Посмотреть сообщение
глобальной области имен проекта экземпляр этого класса
че?

покажи код который не работает в винформе

Добавлено через 50 секунд
Цитата Сообщение от pj-infest Посмотреть сообщение
наверняка есть какие-то особенности проектов WindowsFormsкоторых я незнаю, помогите пожалуйста разобраться.
нету. это особенности языка C# а точнее основы.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 6
27.05.2014, 21:23  [ТС] 3
нужно создать екземпляр класа ServerConnector в глобальной области имен, чтобы можно было его использовать из других классов программы.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 public  class ServerConnector
    {
        private String IPadress;
        private int portNumber;
        private TcpClient client;
        private BinaryFormatter binaryFormatter;
        private NetworkStream stream;
 
        public ServerConnector(String IPadr, int PortN)
        {
            setIPport(IPadr, PortN);
        }
 
        ~ServerConnector()
        { }
 
// другие методи======================================
}
ошибка тут:
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace LibraryClient2._0
{
    ServerConnector myServerConnector();   // тут ошибка
    
static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new StartWindow());
 
            myServerConnector = new ServerConnector ("192.168.0.103", 2200);   //  тут ошибка
        }
    
    }
 
}
0
2144 / 1281 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
27.05.2014, 21:39 4
Цитата Сообщение от pj-infest Посмотреть сообщение
в глобальной области имен
это где?

Цитата Сообщение от pj-infest Посмотреть сообщение
ошибка тут:
вы в класс Program лучше не лезьте.

создай объект своего класса в классе Form1. и все
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 6
27.05.2014, 21:53  [ТС] 5
Цитата Сообщение от Metall_Version Посмотреть сообщение
это где?
Код
namespace LibraryClient2._0
я сделал то же, только в классе, который относится к форме
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace LibraryClient2._0
{
   
    public partial class StartWindow : Form
    {
        ServerConnector myServerConnector();
        public StartWindow()
        {
            InitializeComponent();
            myServerConnector = new ServerConnector("192.168.0.103", 2200); // ошибка тут
          
 
         
        }
    }
}
текст ошибки //Ошибка 2 Невозможно присвоить "myServerConnector" значение, поскольку он является "группа методов" c:\users\rmk\documents\visual studio 2013\Projects\LibraryClient2.0\LibraryClient2.0\StartWindow. cs 23 13 LibraryClient2.0

а по сути мне просто нужно создать такой экземпляр класса ServerConnector к которому я буду иметь доступ из всех форм
0
2144 / 1281 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
27.05.2014, 22:00 6
Цитата Сообщение от pj-infest Посмотреть сообщение
namespace LibraryClient2._0
это пространство имен .. в нем разместить объект(поле) нельзя

C#
1
2
3
4
5
6
7
8
9
10
11
public partial class StartWindow : Form
    {
        ServerConnector myServerConnector;
        public StartWindow()
        {
            InitializeComponent();
            myServerConnector = new ServerConnector("192.168.0.103", 2200); // ошибка тут
          
         
        }
    }
Добавлено через 11 секунд
удалите скобки.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 6
27.05.2014, 22:10  [ТС] 7
скобки нужны для передачи одного из параметров который строкой.
без них можно делать так

C#
1
2
 string ipADR = "192.168.0.103";
            myServerConnector = new ServerConnector(ipADR, 2200);
но это ничего не меняет

то как мне создать такой экземпляр класса ServerConnector к которому я смогу обращаться из нескольких форм?
этот класс является частью проекта, размещенный в отдельном файле
0
2144 / 1281 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
27.05.2014, 22:15 8
Цитата Сообщение от pj-infest Посмотреть сообщение
скобки нужны для передачи одного из параметров который строкой.
так кто тут кому советы дает?...

Добавлено через 56 секунд
Цитата Сообщение от pj-infest Посмотреть сообщение
без них можно делать так
метод твоего объекта можно запустить только в методе. а не в классе
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 6
27.05.2014, 22:16  [ТС] 9
как можно передать строку, не используя скобок?
0
2144 / 1281 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
27.05.2014, 22:17 10
Цитата Сообщение от pj-infest Посмотреть сообщение
а по сути мне просто нужно создать такой экземпляр класса ServerConnector к которому я буду иметь доступ из всех форм
синглтон советовать тебе не буду с такими знаниями..
делай статик класс
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2014, 22:17

Вывод экземпляра собственного класса в TextBox
привет народ. вопрос такой.Создал класс vector.Есть переменная Vector v1 = new Vector(1,2,3); есть...

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

Создание экземпляра метода
Здравствуйте, у меня при написании кода private void Form1_Load(object sender, EventArgs e) ...

При создании экземпляра класса в другом классе вылазит ошибка переполнения
using System; using System.Drawing; namespace WindowsFormsApplication4 { /// &lt;summary&gt; ...


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

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

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