Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94

Замена Rectangle на новый

08.07.2015, 07:38. Показов 1527. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс, суть в том что по нажатию Z на форму ставиться mMyBlock, хотелось бы узнать как можно сделать так чтобы если на том месте где вы решили поставить этот блок, такой уже присутствует, то он заменялся
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public partial class mMyBlock : Control
    {
        
        
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
 
            SolidBrush myBrush = new SolidBrush(Color.Red);
            e.Graphics.FillRectangle(myBrush,new Rectangle(0, 0, Width, Height));
    
        }
        
        
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.07.2015, 07:38
Ответы с готовыми решениями:

Класс Rectangle совпадает с функцией Rectangle
Пишу свой класс Rectangle, который при отрисовки использует функцию Rectangle из GDI. Возникает ошибка из-за того, что имена одинаковые. Но...

Апгрейт или замена на новый компьютер
Собирал компьютер в ~2011 году, системник такой: Процессор: i7-2600 3.4ghz Видеокарта: ATI HD 6970 Мат. плата: asus p8h67 ...

Замена замыкающего штекера 3.5 мм от колонок на новый
От колонок идет провод от штекера в котором 3 проводка белый, черный и красный какой куда паять?

7
28 / 28 / 15
Регистрация: 26.11.2014
Сообщений: 57
08.07.2015, 08:35
Записать координаты блока и если новый блок попадает в значения x+длина и y+высота то заменять.
0
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94
08.07.2015, 08:45  [ТС]
[QUOTE=lKORENl;7849469]Записать координаты блока и если новый блок попадает в значения x+длина и y+высота то заменять.[/QUOTEВ этом и проблема , как заменять(Т.е как убрать старый и поставить новый). Было бы не плохо увидеть это в коде
0
6 / 6 / 4
Регистрация: 02.05.2012
Сообщений: 40
08.07.2015, 08:48
просто надо зарисовать старый рисунок, а потом нарисовать новый))
пример:
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
        public partial class mMyBlock : Control
        {
            public Button button1;
            public Button button2;
            public mMyBlock() : base()
            {
                this.button1 = new Button();
                this.button1.Text = "Нарисовать первый прям.";
                this.button1.Click += new EventHandler(button1_Click);
                this.Controls.Add(this.button1);
 
                this.button2 = new Button();
                this.button2.Text = "Нарисовать второй прям.";
                this.button2.Click += new EventHandler(button2_Click);
                this.Controls.Add(this.button2);
            }
 
            void button1_Click(object sender, EventArgs e)
            {
                Bitmap bitmap = new Bitmap(this.Width, this.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
                Graphics graphics = Graphics.FromImage(bitmap);
                graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
 
                //зарисовываем и рисуем первый прямоугольник 
                graphics.FillRectangle(new SolidBrush(System.Drawing.SystemColors.Control), 0, 0, this.Width, this.Height);
                graphics.FillRectangle(new SolidBrush(Color.Yellow), 10, 10, 20, 20);
                this.BackgroundImage = bitmap;
            }
 
            void button2_Click(object sender, EventArgs e)
            {
                Bitmap bitmap = new Bitmap(this.Width, this.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
                Graphics graphics = Graphics.FromImage(bitmap);
                graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
 
                //зарисовываем и рисуем второй прямоугольник
                graphics.FillRectangle(new SolidBrush(System.Drawing.SystemColors.Control), 0, 0, this.Width, this.Height);
                graphics.FillRectangle(new SolidBrush(Color.Red), 10, 10, 20, 20);
                this.BackgroundImage = bitmap;
            }
 
            /*protected override void OnPaint(PaintEventArgs e)
            {
                base.OnPaint(e);
 
                SolidBrush myBrush = new SolidBrush(Color.Red);
                e.Graphics.FillRectangle(myBrush, new Rectangle(0, 0, Width, Height));
 
            }*/
        }
0
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94
08.07.2015, 08:53  [ТС]
Ну мне надо чтобы если прямоугольники хотяб пересекаются друг с другом то он убирал старый, мнеб убрать его именно
0
6 / 6 / 4
Регистрация: 02.05.2012
Сообщений: 40
08.07.2015, 08:59
как такового убрать нет, его можно просто зарисовать цветом фона
0
78 / 78 / 30
Регистрация: 21.05.2015
Сообщений: 257
08.07.2015, 09:45
кофе с инеем_, как это убрать нет?
у контролов есть свойство Visible, так же можно его удалить из списка контролов главной формы.
0
6 / 6 / 4
Регистрация: 02.05.2012
Сообщений: 40
08.07.2015, 10:34
если речь идет о рисовании, то после того как нарисуешь прямоугольник его нельзя удалить с рисунка, но можно зарисовать.
Однако, если речь идет о контролах, то тема ваша не правильно названа, и пример кода который вы показали не уместен. Относительно того как можно удалить(заменить) контрол, на примере Кнопки:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            //создаем форму на которую будем добавлять контрол
            Form form = new Form();
            //создаем контрол, например кнопку1
            Button button1 = new Button();
            //Добавляем контрол button1 на форму
            form.Controls.Add(button1);
            //создаем контрол, например кнопку2
            Button button2 = new Button();
            //Добавляем контрол button2 на форму
            form.Controls.Add(button2);
            //Размещаем контрол button2 на место контрола button1
            button2.Location = button1.Location;
            //Удаляем контрол button1 с фолрмы
            form.Controls.Remove(button1);
            //показываем форму
            form.Show();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2015, 10:34
Помогаю со студенческими работами здесь

Поиск текста в файле и замена его на новый
1. Есть файл, в нем описаны замены аа -> bb ссс -> jjj мама -> дядя 2. Есть исходный файл, в котором нужно осуществить замену 3....

Чтение файла, замена слов и запись результата в новый файл
Помогите написать конвертер текста Например, у меня есть файл с определенным текстом. Мне нужно что бы программа скопировала все в в...

Замена Букв в файле и запись измененного файла в новый файл
Всем привет, мне нужно заменить буквы в файле и записать в новый файл. Я пытался сделать это, но в текстовый файл записывается только по...

Работа с текстовыми файлами (создать новый, у которого выполнена замена)
Доброго времени суток. Помогите, пожалуйста, с тривиальной задачей, пасибки тыкну=) "По заданному текстовому файлу, содержащему...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru