Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9

Удаление элемента управления с формы

15.02.2019, 16:02. Показов 2988. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Drawing;
 
namespace Forms
{
    /// <summary>
    /// Элемент управления.
    /// </summary>
    public abstract class Control : IDisposable
    {
        internal System.Windows.Forms.Control control;
 
        /// <summary>
        /// Координата X верхнего левого угла.
        /// </summary>
        public int X
        {
            get => control.Location.X;
            set => control.Location = new Point(value, control.Location.Y);
        }
 
        /// <summary>
        /// Координата Y верхнего левого угла.
        /// </summary>
        public int Y
        {
            get => control.Location.Y;
            set => control.Location = new Point(control.Location.X, value);
        }
 
        /// <summary>
        /// Ширина.
        /// </summary>
        public int Width
        {
            get => control.Width;
            set => control.Width = value;
        }
 
        /// <summary>
        /// Высота.
        /// </summary>
        public int Height
        {
            get => control.Height;
            set => control.Height = value;
        }
 
        public Control(int x = 0, int y = 0)
        {
            control = new System.Windows.Forms.Control
            {
                AutoSize = true,
                Location = new Point(x, y)
            };
            Application.Add(this);
        }
 
        /// <summary>
        /// Перемещает элемент управления на вектор.
        /// </summary>
        /// <param name="x">X координата вектора.</param>
        /// <param name="y">Y координата вектора.</param>
        public void MoveOn(int x, int y) => control.Location = new Point(control.Location.X + x, control.Location.Y + y);
 
        /// <summary>
        /// Создает новый объект, являющийся копией текущего экземпляра.
        /// </summary>
        /// <returns>Копия объекта.</returns>
        public abstract object Clone();
 
        /// <summary>
        /// Удаляет элемент управления с формы.
        /// </summary>
        public void Dispose()
        {
            if (Application.form.Controls.Contains(control))
                Application.form.Controls.Remove(control);
        }
    }
}
Вот такой код есть. Требуется сделать возможность удаления контрола с формы. Я реализовал IDisposable. Смущает только одно - что он предназначен для освобождения неуправляемых ресурсов. Полный код в архиве.
Вложения
Тип файла: rar Forms.rar (204.9 Кб, 1 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2019, 16:02
Ответы с готовыми решениями:

Удаление элемента управления RichTextBox, созданного динамически, с формы
Создаю RichTextBox таким образом. RichTextBox myText = new RichTextBox(); this.Controls.Add(myText); myText.Location = new...

Взаимодействие пользовательского элемента управления и формы
Здравствуйте, формучане. Эксперементировал с пользоватльскими элементами и возникли два вопроса: 1. Создал пользовательский элемент на...

Создание элемента управления круглой формы
Вот если требуется нарисовать квадрат, можно взять Panel и закрасить. Можно как-нибудь любой элемент управления превратить в круг? Или в...

3
 Аватар для ViterAlex
8945 / 4857 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
15.02.2019, 17:34
Ерунда какая-то. Контроль с формы удаляет сама форма, точнее контейнер,в котором он находится
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
16.02.2019, 01:59  [ТС]
ViterAlex, а если требуется динамическое добавление или удаление контролов? Меня интересует сейчас лишь удаление.
0
 Аватар для ViterAlex
8945 / 4857 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
16.02.2019, 11:03
Лучший ответ Сообщение было отмечено Соколиный глаз как решение

Решение

Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Меня интересует сейчас лишь удаление.
Ну даже если так, то интерфейс IDisposable тут вообще ни при чём. Любой контрол можно удалить встроенным функционалом:
ctrl.Parent.Controls.Remove(ctrl)
где ctrl — экземпляр класса Control или его наследник.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2019, 11:03
Помогаю со студенческими работами здесь

Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке
Привет :) Есть задача - нужно динамически добавлять компоненты. Все работает хорошо. Но если добавлять через цикл то начинает зависать...

Как из дочерней формы получить доступ к элементу управления родительской формы
Есть две формы: родительская(Form1) и дочерняя(Form2). В родительской форме(Form1) находятся textBox1 и button1. В дочерней форме...

Получение и изменение свойств элемента формы из другой формы
Существует MDI-форма Form1. Форма имеет элемент MainMenu1. Один из пунктов MainMenu1 вызывает подчиненную (MDI-child) форму Form2. При...

Удаление динамического контента (элементов управления)
В программе в зависимости от данных создаётся определённое количество панелей с пикчербоксами и линк лейблами. Как Очистить экран и...

Динамическое создание и удаление элементов управления
В конструкторе есть комбобокс, нужно отображать n-ое кол-во textbox и label, в зависимости от значения combobox,дальше по коду ...


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

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

Новые блоги и статьи
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Сложность Колмогорова: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
Состояние гонки в C#: подводные камни многопоточного программировани­я
UnmanagedCoder 20.03.2025
Что такое состояние гонки? Это ситуация, когда результат программы непредсказуемо меняется в зависимости от порядка выполнения потоков. Проще говоря, два или более потока пытаются одновременно. . .
Next.js для разработки React: преимущества серверного рендеринга
Reangularity 20.03.2025
Next. js решает классическую проблему React-приложений: медленную первоначальную загрузку и плохую индексацию поисковиками. Вместо того чтобы заставлять браузер пользователя выполнять всю работу по. . .
JUnit или TestNG: Выбираем Java-фреймворк для тестирования
Javaican 20.03.2025
История тестовых фреймворков в Java началась в конце 90-х, когда Кент Бек и Эрих Гамма разработали JUnit - инструмент, который перевернул представление разработчиков о модульном тестировании. JUnit. . .
Разбиваем монолит на два микросервиса и реализуем CI/CD
ArchitectMsa 20.03.2025
Когда команда растет, а функциональность монолита расширяется, поддерживать и развивать такую систему становится все труднее. Разработчики начинают тратить много времени на разбор сложных. . .
Python и PDF: Создание и редактирование файлов
py-thonny 20.03.2025
Работа с PDF-документами – одна из популярных задач в современной разработке. Python предлагает несколько инструментов для создания, чтения и редактирования PDF-файлов, среди которых особенно. . .
Корутины в Unity и производительно­сть WaitForSeconds
GameUnited 20.03.2025
Разработчики игр на Unity часто сталкиваются с вопросом: как выполнять действия через определённые промежутки времени, не блокируя основной поток игры? Тут как раз и приходят на помощь корутины —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru