Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
82 / 50 / 14
Регистрация: 28.10.2013
Сообщений: 200
1

Создание полукруглых углов у объектов и форм

02.03.2016, 09:45. Показов 801. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
День добрый!
Задался идеей создать полукруглые углы у любого объекта, в основном конечно же, для форм...
Реализовывать взялся посредством рисования секторов и цвета прозрачности формы...
Написал код... Для всех объектов он корректно работает, однако к моему удивлению, на форме вырисовывается лишь с одной стороны...
VB.NET
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
    Public Function Bordering(Control As Control, Angel_Strong As Integer)
        DrawBorder(0, 0, Angel_Strong, Angel_Strong, 1, Control)
        DrawBorder(0, Control.Height - Angel_Strong, Angel_Strong, Angel_Strong, 2, Control)
        DrawBorder(Control.Width - Angel_Strong, 0, Angel_Strong, Angel_Strong, 3, Control)
        DrawBorder(Control.Width - Angel_Strong, Control.Height - Angel_Strong, Angel_Strong, Angel_Strong, 4, Control)
    End Function
 
  Function DrawBorder(x As Integer, y As Integer, width As Integer, height As Integer, angle As Single, Control As Control)
        Dim rect As New Rectangle(x, y, width, height)
        Dim Start As Single
        Dim Turn As Single = 90.0F
        Dim rect2 As Rectangle
        Select Case angle
            Case 1
                rect2 = New Rectangle(x, y, width / 2, height / 2)
                Start = 180
            Case 2
                rect2 = New Rectangle(x, y + height / 2, width / 2, height / 2)
                Start = 90
            Case 3
                rect2 = New Rectangle(x + width / 2, y, width / 2, height / 2)
                Start = 270
            Case 4
                rect2 = New Rectangle(x + width / 2, y + height / 2, width / 2, height / 2)
                Start = 0
        End Select
        Control.CreateGraphics.FillRectangle(Brushes.Yellow, rect2)
        Control.CreateGraphics.FillPie(Brushes.Red, rect, Start, Turn)
    End Function
Вызов:
VB.NET
1
  Bordering(Me, 50)
С чем может быть связана такая проблема, и как ее можно решить?

Добавлено через 6 минут
Прошу прощение, проблема решилась созданием нового проекта.. Видимо просто старый проект заглючил где-то...
Все корректно работает...

Добавлено через 10 минут
Нет, вновь ошибся.. проблема всё еще осталась...
Закрадывается подозрение, что программа просто не успевает отрисовать все 4 угла, и отрисовывает лишь 1-2
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2016, 09:45
Ответы с готовыми решениями:

Создание объектов баз данных (форм, отчетов)
http://abc.vvsu.ru/Books/baz_dan/page0003.asp

Определение координат и углов 2D объектов
Пожалуйста подскажите как в Unity 2D находить углы, и координаты. 1. Известен угол объекта,...

Вычисление одного из углов треугольника, когда заданы значения двух других углов
Написать программу вычисления одного из углов треугольника, когда заданы значения двух других...

Доступ к списку объектов с разных форм!
Всем превед! :) В программе имеется несколько форм, есть объекты с которыми предполагается...

2
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
02.03.2016, 14:01 2
Пример создания панели с закругленными углами http://www.developer.com/net/v... ontrol.htm
Для формы устанавливаете
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.TransparencyKey = Me.BackColor
И далее на ней размещаете панель. На рисунке пример подобной формы.
Изображения
 
0
82 / 50 / 14
Регистрация: 28.10.2013
Сообщений: 200
02.03.2016, 16:20  [ТС] 3
ovva, но мой код тоже работает, и на глаз он более компактен и прост..

Проблему решил...
Оказалось, что я не в том месте прописал Refresh в коде, и при прорисовке следующего угла, предыдущие просто стирались...
0
02.03.2016, 16:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2016, 16:20
Помогаю со студенческими работами здесь

Ввести значение углов a и b в градусах, затем посчитать и вывести значения cos и sin этих углов
Нужно ввести значение углов a и b в градусах, затем посчитать и вывести значения cos и sin этих...

Редактирование объектов форм созданных через FormWizard
Создал форму через Wizard form (с гридом), все работает как нодо, но нужно перевести все надписи с...

Использование простейших объектов - форм и командных кнопок
Помогите пожалуйста выполнить задание: Создать форму, которая при щелчке на ней мышью...

Массивы объектов класса. возможна ли работа с ними в конструкторе форм?
Делаю программу для расчета резца, для ввода значений использую класс NumericUpDown. Сейчас решил...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru