Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
.NET 3.x

Как объединить класс с главной формой?

07.01.2016, 00:32. Показов 3210. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс:
C#
1
2
3
4
5
6
7
8
9
10
internal class Blabla
{
    public static void Search()
    {
        if (!File.Exists(PathFile)
        {
          textBox1.Text = " Файл Существует"; //
        }
    }
}
Есть форма:
C#
1
2
3
4
private void timer_Tick(object sender, EventArgs e)
{
  Blabla.Search(); // Вызов функции класса
}
Так вот мне нужно из класса ( вывести в форму текстбокс Файл Существует

Как мне такое провернуть?
Как обращаться с делегатами?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.01.2016, 00:32
Ответы с готовыми решениями:

Нужно связать дополнительный класс с формой
Вот задание: Дана строка. Определить, какие символы и сколько раз встречаются в данной строке. это код в дополнительном классе: public...

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

Как создать класс со своей формой?
Здравствуйте все. Только начинаю изучать делфи, и возник такой вопрос: а можно ли вообще в делфи создать класс с собственной формой? Т.е....

10
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
07.01.2016, 00:41
Цитата Сообщение от chaleureux Посмотреть сообщение
Так вот мне нужно из класса ( вывести в форму текстбокс Файл Существует
Текстбокс или текст?
Если текстбокс, то какой смысл в этом действии?
И причем здесь делегаты?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
07.01.2016, 01:29
Цитата Сообщение от chaleureux Посмотреть сообщение
Как мне такое провернуть?
Как обращаться с делегатами?
Событие в вашем классе и подписка на него в форме.

Добавлено через 1 минуту
Цитата Сообщение от Даценд Посмотреть сообщение
Если текстбокс, то какой смысл в этом действии?
И причем здесь делегаты?
Смысл в том, что, как я понял, ТС из отдельного класса хочет обратиться к контролу формы. А он там, естественно, не виден)))
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
07.01.2016, 08:34  [ТС]
Эх Есть форма, в нём TextBox как из класса передать сообщение в него?
Цитата Сообщение от Даценд Посмотреть сообщение
И причем здесь делегаты?
По наслышке говорили что нужно использовать делегаты
0
7 / 7 / 3
Регистрация: 04.11.2015
Сообщений: 124
07.01.2016, 10:05
C#
1
2
3
4
5
6
7
8
9
10
11
internal class Blabla
{
    public static void Search(out string s1)
    {
        if (!File.Exists(PathFile)
        {
          textBox1.Text = " Файл Существует";
          s1=textBox1.Text;
        }
    }
}
C#
1
2
3
4
5
private void timer_Tick(object sender, EventArgs e)
{
  Blabla.Search(out string s);
  this.textBox.Text=s; 
}
Можно попробовать так.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
07.01.2016, 10:25
Цитата Сообщение от chaleureux Посмотреть сообщение
Есть форма, в нём TextBox как из класса передать сообщение в него?
Так.
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
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.IO;
 
 
namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            MyObject.MsgEvent += new EventHandler(MyObject_MsgEvent);
            button1.Click += new EventHandler(button1_Click);
        }
 
        void MyObject_MsgEvent(object sender, EventArgs e) {
            textBox1.Text = MyObject.Message;
        }
 
        void button1_Click(object sender, EventArgs e) {
            Timer timer = new Timer();
            timer.Interval = 1000;
            timer.Tick += new EventHandler(timer_Tick);
            timer.Start();
        }
 
        void timer_Tick(object sender, EventArgs e) {
            MyObject.Search("");
        }
    }
 
}
class MyObject {
    public static string Message;
    public static event EventHandler MsgEvent = delegate { };
    public static void Search(string path) {
        if (!File.Exists(path)) {
            Message = "File not exists!";
            MsgEvent(null, EventArgs.Empty);
        }
    }
}
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
07.01.2016, 13:00
Лучший ответ Сообщение было отмечено chaleureux как решение

Решение

Немного поправлю AlSeed и можно без делегатов:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
internal class Blabla
{
    public static string Search()
    {
        if (File.Exists(PathFile))
        {
          return "Файл Существует";
        }
        return "Файл Не Существует";
    }
}
private void timer_Tick(object sender, EventArgs e)
{
  this.textBox.Text = Blabla.Search();
}
1
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
07.01.2016, 22:53  [ТС]
Благодарю за хорошие отзывы) попробую

Добавлено через 2 часа 29 минут
Даценд при использование этого метода в форме явная ошибка:
Неявное преобразование типа "bool" в "string" невозможно

Добавлено через 6 минут
Оу это я намудрил забыл про string все круть спс
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
07.01.2016, 23:41  [ТС]
Последний вопрос на эту тему:
Как можно отсылать не через
C#
1
return;
а напрямую:
C#
1
textBox1.Text = "text";
0
7 / 7 / 3
Регистрация: 04.11.2015
Сообщений: 124
07.01.2016, 23:56
chaleureux, а чем не устраивают research'и?
Если через тот вариант, что предложил Даценд, наверное никак. Только если через out'ы, как я предлагал, наверное.
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
08.01.2016, 00:01  [ТС]
AlSeed, только вот через out'ы не очень получается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2016, 00:01
Помогаю со студенческими работами здесь

Создание формы перед главной формой приложения
Как реализовать создание формы перед открытием главной?

Открыть запрос над главной формой при запуске программы
Добрый день, речь идет о запросе "СуммаОплаты". Помогите пожалуйста с двумя задачами. 1) Появилась необходимость открытия запроса при...

Добавить существующий класс с формой
Пытаюсь добавить класс, у которого уже есть форма. То есть кликаю на проект левой кнопкой, выбираю добавить существующие файлы, там в папке...

Ошибка при попытке показа формы авторизации перед главной формой
Ув. форумчане, добрый день ! Возникла ошибка при дебаге программы при попытке создания формы авторизации перед главной формой....

Как поместить класс в функцию и вывести в главной функции?
void classes(){ class CppStudio { public: void message() { cout << "hello class"; } ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru