Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
3 / 3 / 1
Регистрация: 07.07.2012
Сообщений: 90

Доступ к элементу listBox на форме из класса в Program.cs

05.05.2013, 00:54. Показов 3603. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как работать с элементами формы из класса в отдельном .cs файле.

Код самого класса, из которого нужно управлять элементами на форме:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class ColumnsSettings{
    Dictionary<string, string> testParams = new Dictionary<string, string>()
    {
        {"Test1", ""},
        {"Test2", ""},
    };
 
    public ColumnsSettings()
    {
        foreach (KeyValuePair<string, string> data in testParams)
        {
            // Тут надо на form1 в listBox1 добавить значения ( data.Key ) из массива testParams.
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2013, 00:54
Ответы с готовыми решениями:

Как получить доступ к элементу формы из Program.cs?
День добрый! Решил поколдовать в ВинФормс, ну и конечно, столкнулся с проблемой: ну создал я элемент button1, хочу создать в проге...

Как получить доступ к элементу ListBox из другого потока
Прошу помощи. public partial class MainWindow : Window { //==================================================== ...

Доступ к элементу формы из класса
класс написан в другом файле. class TBReader:IReader { string str; public override string GetStr() {...

5
30 / 30 / 8
Регистрация: 15.04.2013
Сообщений: 244
05.05.2013, 02:21
Подключаешь библиотеки и работаешь=)
Пример получения матрицы в классе из dataGridView:
C#
1
2
3
4
5
6
7
8
9
public Matrix(DataGridView DGV) //Получаем матрицу из DGV 
        {
            RowCount = Convert.ToUInt32(DGV.RowCount);
            ColumCount = Convert.ToUInt32(DGV.ColumnCount);
            A = new double[RowCount, ColumCount];
            for (int i = 0; i < RowCount; ++i)
                for (int j = 0; j < ColumCount; ++j)
                    A[i, j] = Convert.ToDouble(DGV.Rows[i].Cells[j].Value);
        }
0
 Аватар для MrGladus
178 / 178 / 50
Регистрация: 06.01.2013
Сообщений: 392
05.05.2013, 02:34
Измени свойство Modifiers с private на public нужного тебе контрола и он будет виден извне формы
И еще прочитай Ответы на 7 самых частых вопросов по WinForms, там есть ответ на твой вопрос, притом не один а по сабжу чтоб понятнее было, можно например так (при условии что ты изменил Modifiers):
C#
1
2
var form1 = new Form1();
form1.textBox1...
1
3 / 3 / 1
Регистрация: 07.07.2012
Сообщений: 90
05.05.2013, 12:18  [ТС]
Cтанислав, какие библиотеки? Как работаешь? Вы не могли бы объяснить поподробнее?

MrGladus,
An unhandled exception of type 'System.StackOverflowException' occurred in System.Windows.Forms.dll - Ошибка выскакивает в течении 2 секунда после запуска.

Код конструктора класса:
C#
1
2
3
4
5
public ColumnsSettings()
{
    var form1 = new Form1();
    form1.listBox1.Items.Add("test");
}

Код в Form1.cs:
C#
1
2
3
4
5
        public Form1()
        {
            InitializeComponent();
            new ColumnsSettings();
        }

Cвойство Modifiers на listBox1 изменил на Public.


Разве var form1 = new Form1(); не создает новый экземпляр Form1?

Вы не могли бы поподробнее разъяснить как пользоваться вот этим?
C#
1
2
3
4
static class Data
{
    public static string Value { get; set; }
}
0
30 / 30 / 8
Регистрация: 15.04.2013
Сообщений: 244
05.05.2013, 13:35
Я Вас немного неправильно понял. В классе использовать какой-то label на прямую с формы не практично, т.к. Ваш класс ограничиться по переносимости и функциональности. Я Вам говорил о том, что можно передать listbox в качестве параметра. Так как подсказал Вам MrGladus, я так не делал никогда. Если хотите сделать так как предлагаю я, то вот как это будет выглядеть:
C#
1
2
3
4
public ColumnsSettings(listBox A)
{
    A.Items.Add("test");
}
1
3 / 3 / 1
Регистрация: 07.07.2012
Сообщений: 90
05.05.2013, 15:31  [ТС]
Отлично, спасибо) Вроде приблизительно разобрался...
Решил в конструктор передавать ссылку на форму и с ней работать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2013, 15:31
Помогаю со студенческими работами здесь

Как открыть pdf в форме двойным щелчком по элементу listbox?
В listbox выводится список pdf файлов теперь надо по двойному щелчку открыть его в axacroPDF как это реализовать помогите пожалуйста очень...

Как из класса получить доступ к элементу дочернего окна главной формы?
Есть структура MDI - Главная форма-дочерняя. И есть класс. Из класса мне нужно получить данные о состоянии некоего элемента на дочерней...

Доступ к форме из класса
Или я тупой, или лыжи не едут, я так и не понял как это сделать. Есть форма, на ней textBox1 и button1. Есть мой класс MyClass в котором...

Доступ к элементу ListBox
Добрый день. Помогите разобраться. Есть такой вот ListBox (на самом деле он сложнее, но мне достаточно понять общую идеологию): ...

Получить доступ с одного класса к элементу второго класса
Добрый вечер, я сейчас работаю с XNA Game Studio 4.0, каркас программы аналогичен .Net , пишу свою игру. Как мне получить доступ с одного...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru