Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 1
Регистрация: 02.07.2014
Сообщений: 41

Построение графиков и скрытие одного из них

02.07.2014, 22:37. Показов 1390. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Создаю программу в ней есть два графика(один аналог другого, но в другом исполнении). Необходимо сделать чтоб при нажатии на кнопку скрывался один график и прорисовывался другой. Возникли проблемы делаю прорисовку графика через прорисовку на PictureBox, делаю на кнопках как учили скрыть один показать другой. Получается так что один скрывается а другой не прорисовывается! Прорисовка происходит только при двойном нажатии на кнопку, а идея вообще была через RadioButton сделать, но тогда вообще беда.
Вот сделал пример элементарного кода:
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
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim Graph1, Graph2 As Graphics
    Dim Pen1 As New Pen(Color.Black, 2)
    Dim Pen2 As New Pen(Color.Red, 3)
    Dim brush1 As New SolidBrush(Color.Black)
    Dim font1 As New Font("Arial", 10)
    Dim X, Y As Single
 
#Region " Код, автоматически созданный конструктором форм Windows "
 
    Public Sub New()
        MyBase.New()
 
        'Этот вызов требуется конструктором форм Windows.
        InitializeComponent()
 
        'Добавьте код инициализации после вызова InitializeComponent()
 
    End Sub
 
    'Форма переопределяет метод Dispose для очистки списка компонентов.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
 
    'Требуется конструктором форм Windows
    Private components As System.ComponentModel.IContainer
 
    'ПРИМЕЧАНИЕ: следующая процедура требуется для конструктора форм Windows.
    'Ее можно изменить в конструкторе форм Windows.  
    'Не изменяйте ее в редакторе исходного текста.
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
    Friend WithEvents PictureBox2 As System.Windows.Forms.PictureBox
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents Button3 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button
        Me.PictureBox1 = New System.Windows.Forms.PictureBox
        Me.PictureBox2 = New System.Windows.Forms.PictureBox
        Me.Button2 = New System.Windows.Forms.Button
        Me.Button3 = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(96, 344)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(152, 40)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Button1"
        '
        'PictureBox1
        '
        Me.PictureBox1.Location = New System.Drawing.Point(48, 24)
        Me.PictureBox1.Name = "PictureBox1"
        Me.PictureBox1.Size = New System.Drawing.Size(424, 312)
        Me.PictureBox1.TabIndex = 1
        Me.PictureBox1.TabStop = False
        '
        'PictureBox2
        '
        Me.PictureBox2.Location = New System.Drawing.Point(480, 24)
        Me.PictureBox2.Name = "PictureBox2"
        Me.PictureBox2.Size = New System.Drawing.Size(424, 312)
        Me.PictureBox2.TabIndex = 2
        Me.PictureBox2.TabStop = False
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(576, 344)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(152, 40)
        Me.Button2.TabIndex = 3
        Me.Button2.Text = "Button2"
        '
        'Button3
        '
        Me.Button3.Location = New System.Drawing.Point(360, 352)
        Me.Button3.Name = "Button3"
        Me.Button3.Size = New System.Drawing.Size(128, 24)
        Me.Button3.TabIndex = 4
        Me.Button3.Text = "Button3"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(912, 410)
        Me.Controls.Add(Me.Button3)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.PictureBox2)
        Me.Controls.Add(Me.PictureBox1)
        Me.Controls.Add(Me.Button1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)
 
    End Sub
 
#End Region
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      
 
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        PictureBox1.Visible = True
        PictureBox2.Visible = False
 
        Graph1 = Me.PictureBox1.CreateGraphics()
        Graph1.ScaleTransform(1, 1)
        Graph1.TranslateTransform(0, 0)
        Graph1.DrawLine(Pen2, 0, 100, 100, 100)
 
 
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        PictureBox1.Visible = False
        PictureBox2.Visible = True
        Graph2 = Me.PictureBox2.CreateGraphics()
        Graph2.ScaleTransform(1, 1)
        Graph2.TranslateTransform(0, 0)
        Graph2.DrawLine(Pen1, 0, 100, 100, 100)
    End Sub
 
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
 
        Graph2 = Me.PictureBox2.CreateGraphics()
        Graph2.ScaleTransform(1, 1)
        Graph2.TranslateTransform(0, 0)
        Graph2.DrawLine(Pen1, 0, 100, 100, 100)
 
        Graph1 = Me.PictureBox1.CreateGraphics()
 
 
        Graph1.ScaleTransform(1, 1)
        Graph1.TranslateTransform(0, 0)
        Graph1.DrawLine(Pen2, 0, 100, 100, 100)
 
 
    End Sub
End Class
Подскажите что я делаю не так.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.07.2014, 22:37
Ответы с готовыми решениями:

Построение графиков одного формата на каждом листе книге Excel
Господа, помогите с такой проблемой. Имеется несколько столбцов данных на каждом листе книги - дата и добыча, для которых необходимо...

2 формы скрытие одной из них
Здравствуйте, хотелось бы узнать ответ на 1 вопрос, как сделать так, чтобы происходило следующее: Открывается главная форма, по нажатию...

О двоичной совместимости версий проектов в рамках одного решения, после пересборки только одного из них
Коллеги, всем мое почтение! Есть решение для .NET, в котором мой проект ASP.NET WebForms. На инструментальной машине разработчика я...

3
 Аватар для Petr_S
213 / 230 / 87
Регистрация: 21.04.2013
Сообщений: 404
02.07.2014, 23:43
Лучший ответ Сообщение было отмечено gjboy как решение

Решение

Так?
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
30
31
32
    Dim Pen1 As New Pen(Color.Black, 2)
    Dim Pen2 As New Pen(Color.Red, 3)
    Dim brush1 As New SolidBrush(Color.Black)
    Dim font1 As New Font("Arial", 10)
    Dim X, Y As Single
 
    Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        e.Graphics.ScaleTransform(1, 1)
        e.Graphics.TranslateTransform(0, 0)
        e.Graphics.DrawLine(Pen2, 0, 100, 100, 100)
    End Sub
 
    Private Sub PictureBox2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox2.Paint
        e.Graphics.ScaleTransform(1, 1)
        e.Graphics.TranslateTransform(0, 0)
        e.Graphics.DrawLine(Pen1, 0, 100, 100, 100)
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        PictureBox1.Visible = True
        PictureBox2.Visible = False
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        PictureBox1.Visible = False
        PictureBox2.Visible = True
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        PictureBox1.Visible = True
        PictureBox2.Visible = True
    End Sub
Добавлено через 6 минут
Цитата Сообщение от gjboy Посмотреть сообщение
идея вообще была через RadioButton сделать
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Private Sub RadioButtons_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged
 
        Select Case DirectCast(sender, RadioButton).Name.ToString
            Case "RadioButton1"
                PictureBox1.Visible = True
                PictureBox2.Visible = False
 
            Case "RadioButton2"
                PictureBox1.Visible = False
                PictureBox2.Visible = True
 
            Case "RadioButton3"
                PictureBox1.Visible = True
                PictureBox2.Visible = True
        End Select
    End Sub
1
1 / 1 / 1
Регистрация: 02.07.2014
Сообщений: 41
03.07.2014, 01:01  [ТС]
Спасибо всё работает!
0
 Аватар для Petr_S
213 / 230 / 87
Регистрация: 21.04.2013
Сообщений: 404
03.07.2014, 06:41
Чего-то я для RadioButton не совсем то написал. Вот более правильное решение:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Private Sub RadioButtons_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged
 
        Select Case True
            Case RadioButton1.Checked
                PictureBox1.Visible = True
                PictureBox2.Visible = False
 
            Case RadioButton2.Checked
                PictureBox1.Visible = False
                PictureBox2.Visible = True
 
            Case RadioButton3.Checked
                PictureBox1.Visible = True
                PictureBox2.Visible = True
 
        End Select
    End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.07.2014, 06:41
Помогаю со студенческими работами здесь

Как сделать так, что при совпадении одного объекта с другим происходило удаление одного из них
Подскажите, как сделать так, что при совпадении одного объекта с другим происходило удаление одного из них. Вкратце. Есть несколько...

Скрытие одного PNG под другим
Здравствуйте. При верстке возникла следующая задачка. Есть общий фон у страницы (1), слева в нижнем углу находится png изображение (2),...

Создание VLAN, скрытие одного свича
Всем привет. Имеется HP 1810 - 24G. Хотелось бы скрыть бухгалтерию от посторонних глаз. Как сделать так, чтобы один кабинет (соответственно...

Построение графиков
f(x)=\frac{x^3+x}{x^3-x} Не совсем понимаю, как строить подобные графики. Где нет тригонометрических функций. Понимаю, что функция...

Построение графиков
Мне нужно чтобы программа строила графики(3 шт) в инете программы только с одним графиком, и то в большинстве тангенс не работает.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru