Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
6stprod
http://jokenews.ru/
9 / 9 / 7
Регистрация: 07.02.2013
Сообщений: 179
#1

Мерцание элементов управления, содержащих картинки - Visual Basic .NET

02.07.2015, 11:33. Просмотров 490. Ответов 8
Метки нет (Все метки)

Столкнулся с такой проблемой -

При запуске моего приложения пару - тройку секунд происходят чудеса, (почти все элементы на моей форме это picturebox'ы со свойством транспарент и png изображением) и при запуске они моргают пару секунд пока не будут прогружены.

Хотелось бы чтобы приложение запускалось сразу и без подгрузок
Как с этим бороться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2015, 11:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Мерцание элементов управления, содержащих картинки (Visual Basic .NET):

Клонирование элементов управления
Впервые столкнулся с подобной проблемой... Требуется создать на форме панель,...

Массив элементов управления
Уважаемые специалисты, помогите, пожалуйста, новичку в VB 2008! На Form есть...

Динамическое создание элементов управления
Dim row As DataRowView Dim groupBox1 As New GroupBox() Dim f...

Убрать блокировку элементов управления
Среда Visual Basic STUDIO’2010 Professional Почему в конструкторе невозможно...

Плавное появление элементов управления
Начинается все пожалуй с Form, с ней просто - свойство Opacity кидаем в цикл, с...

Простейшая анимация элементов управления на форме
Всем привет! Создаю простейшую анимацию на форме, чтобы кнопки при открытии...

8
6stprod
http://jokenews.ru/
9 / 9 / 7
Регистрация: 07.02.2013
Сообщений: 179
02.07.2015, 11:48  [ТС] #2
Пример на двух мониторах

Мерцание элементов управления, содержащих картинки как выглядит форма под фул хд

Мерцание элементов управления, содержащих картинки как выглядит форма под 15" (

Тут видно что приложение полностью закрывает 15" и вылезает на другой монитор
0
6stprod
http://jokenews.ru/
9 / 9 / 7
Регистрация: 07.02.2013
Сообщений: 179
02.07.2015, 14:21  [ТС] #3
Anchor и тд не катит... может есть способ маштабирования приложения со всеми его выходящими?

Добавлено через 2 часа 26 минут
Дико извиняюсь, первый пост актуальный, остальные не в тему, просьба удалить
0
edward_freedom
1553 / 1432 / 302
Регистрация: 01.10.2011
Сообщений: 2,636
02.07.2015, 14:33 #4
6stprod, Если тебе важен дизайн, то почему ты не пишешь на wpf? Wpf обрабатывает видеокарта и все рисуется мгновенно. А WinForms, если не ошибаюсь, рисует процессор. Кстати, твой батлнет написан на Qt, а его интерфейс так же обрабатывает видеокарта
1
6stprod
http://jokenews.ru/
9 / 9 / 7
Регистрация: 07.02.2013
Сообщений: 179
02.07.2015, 14:44  [ТС] #5
Launcher.zip

Вот, посмотрите пожалуйста как это все выглядит
0
6stprod
http://jokenews.ru/
9 / 9 / 7
Регистрация: 07.02.2013
Сообщений: 179
02.07.2015, 19:21  [ТС] #6
Программа прорисовывает элементы пару секунд, выглядит не очень, вот код

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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
Imports System.Net
Imports System.IO
Imports MySql.Data.MySqlClient
 
Public Class Form1
 
    'ПРИ ВКЛЮЧЕНИИ ПРОГРАММЫ СРАБАТЫВАЕТ КОД НА ПРОВЕРКУ ДОСТУПНОСТИ СЕРВЕРА
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim tcpClient = New Net.Sockets.TcpClient
        Dim ar = tcpClient.BeginConnect("127.0.0.1", 3306, Nothing, Nothing)
        Try
            If Not ar.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(3), False) Then
                tcpClient.Close()
                Label1.ForeColor = Color.Red
                Label1.Text = "Недоступен"
            Else
                tcpClient.EndConnect(ar)
                tcpClient.Close()
                Label1.ForeColor = Color.Lime
                Label1.Text = "Доступен"
            End If
        Catch ex As Exception
            Label1.ForeColor = Color.Red
            Label1.Text = "Недоступен"
        End Try
        ar.AsyncWaitHandle.Close()
 
        'ВЫВОДИМ КОЛИЧЕСТВО ИГРОКОВ ОНЛАЙН
        Dim conn As New MySqlConnection("Server=127.0.0.1;User id=trinity;password=trinity;database=characters")
        Dim cmd As New MySqlCommand
        Try
            conn.Open()
            cmd.Connection = conn
            'Для выполнения запросов типа insert, update возможно использование ExecuteNonQuery, которая возвращает количество задействованных строк
            ' cmd.CommandText = "INSERT INTO `test_table` (`id`, `test_info`) VALUES (NULL, 'some text info for current id');"
            '  Try
            'cmd.ExecuteNonQuery()
            ' Catch ex As Exception
            'описание того, что программа должна делать в случае возникновения каких-либо непредвиденных обстоятельств
            ' End Try
            'для получения данных из таблиц (запросы типа select) используется reader.
            cmd.CommandText = "SELECT COUNT(*) FROM `characters` WHERE `online` = 1"
            Dim reader As MySqlDataReader
            reader = cmd.ExecuteReader()
            While reader.Read()
                Label4.Text = reader.GetValue(0)
                'MsgBox(reader.GetValue(0))
            End While
        Catch ex As Exception
            Label4.ForeColor = Color.Red
            Label4.Text = "0"
        End Try
        'КОНЕЦ КОДА ВЫВОДИМ КОЛИЧЕСТВО ИГРОКОВ ОНЛАЙН
 
 
 
        'ХЗ ЗАЧЕМ Я ЭТО НАПИСАЛ
 
        ' PictureBox1.Parent = Me
        'PictureBox2.Parent = Me
        'PictureBox3.Parent = Me
        'PictureBox6.Parent = Me
        'PictureBox5.Parent = Me
        'PictureBox7.Parent = Me
        'PictureBox8.Parent = Me
        'PictureBox9.Parent = Me
        'PictureBox10.Parent = Me
 
 
 
        'ВЫВОД НОВОСТЕЙ
        ' Dim strSource As String = (New System.Net.WebClient).DownloadString("http://127.0.0.1/news.php")
        ' RichTextBox1.Text = Pars(strSource, "<dfn>", "</dfn>")
 
        'ВЫВОД НОВОСТЕЙ
    End Sub
 
 
 
 
 
    'ВЫВОД НОВОСТЕЙ
    ' Public Function Pars(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String) As String
    'Dim iPos As Integer, iEnd As Integer
    ' Dim strResult As String
    ' iPos = strSource.IndexOf(strStart, 0)
    '  iEnd = strSource.IndexOf(strEnd, iPos + strStart.Length)
    '  If iPos <> -1 AndAlso iEnd <> -1 Then
    '  strResult = strSource.Substring(iPos + strStart.Length, iEnd - (iPos + strStart.Length))
    ' End If
    '  Return strResult
    ' End Function
    'ВЫВОД НОВОСТЕЙ
 
 
 
 
 
    'КНОПКА ЗАКРЫТЬ ПРИЛОЖЕНИЕ
 
 
    Private Sub PictureBox1_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox1.MouseEnter
        PictureBox1.BackgroundImage = My.Resources.close
    End Sub
 
    Private Sub PictureBox1_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox1.MouseLeave
        PictureBox1.Parent = Me
        PictureBox1.BackgroundImage = Nothing
 
    End Sub
 
    Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
        Application.Exit()
    End Sub
 
    'КОНЕЦ КОДА КНОПКА ЗАКРЫТЬ ПРИЛОЖЕНИЕ
 
 
 
 
    'КНОПКА МИНИМИЗИРОВАТЬ ПРИЛОЖЕНИЕ
    Private Sub PictureBox2_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox2.MouseEnter
        PictureBox2.BackgroundImage = My.Resources.mini
    End Sub
 
    Private Sub PictureBox2_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox2.MouseLeave
        PictureBox2.Parent = Me
        PictureBox2.BackgroundImage = Nothing
    End Sub
 
    Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles PictureBox2.Click
        Me.WindowState = FormWindowState.Minimized
    End Sub
    'КОНЕЦ КОДА КНОПКА МИНИМИЗИРОВАТЬ ПРИЛОЖЕНИЕ
 
 
 
 
    'Кнопка ИГРАТЬ
    Private Sub PictureBox3_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox3.MouseEnter
        PictureBox3.BackgroundImage = My.Resources.play_hover
    End Sub
 
    Private Sub PictureBox3_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox3.MouseLeave
        PictureBox3.BackgroundImage = My.Resources.play_no_hover
    End Sub
 
    Private Sub PictureBox3_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox3.MouseDown
        PictureBox3.BackgroundImage = My.Resources.play_take
    End Sub
 
    Private Sub PictureBox3_MouseUp(sender As Object, e As MouseEventArgs) Handles PictureBox3.MouseUp
        PictureBox3.BackgroundImage = My.Resources.play_hover
    End Sub
 
    Private Sub PictureBox3_Click(sender As Object, e As EventArgs) Handles PictureBox3.Click
        Try
            Process.Start(My.Application.Info.DirectoryPath.ToString & "\Wow.exe")
            Application.Exit()
        Catch ex As Exception
 
            Label5.Text = "Файл Wow.exe не найден! Поместите приложение в папку с установленной игрой!"
            ' MsgBox("Ошибка запуска приложения!", MsgBoxStyle.Critical)
 
        End Try
    End Sub
    'КОНЕЦ КОДА Кнопка ИГРАТЬ
 
 
    'ПЕРЕТАСКИВАНИЕ ФОРМЫ
 
    Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles MyBase.MouseDown
        If (e.Button = Windows.Forms.MouseButtons.Left) Then
            Me.Capture = False
            Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
 
        Else : End If
    End Sub
 
    'КОНЕЦ КОДА ПЕРЕТАСКИВАНИЕ ФОРМЫ
 
 
 
    'КНОПКА ОЧИСТИТЬ КЕШ
 
    Private Sub PictureBox6_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox6.MouseEnter
        PictureBox6.BackgroundImage = My.Resources.cashe_hover
    End Sub
 
    Private Sub PictureBox6_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox6.MouseLeave
        PictureBox6.Parent = Me
        PictureBox6.BackgroundImage = Nothing
    End Sub
 
    Private Sub PictureBox6_Click(sender As Object, e As EventArgs) Handles PictureBox6.Click
        If My.Computer.FileSystem.DirectoryExists(My.Application.Info.DirectoryPath.ToString & "\Cache") Then
            Try
                My.Computer.FileSystem.DeleteDirectory(My.Application.Info.DirectoryPath.ToString & "\Cache", FileIO.DeleteDirectoryOption.DeleteAllContents)
                MsgBox("Кеш успешно удален", MsgBoxStyle.Information)
            Catch ex As Exception
                MsgBox("Ошибка удаления файла или папки! Попробуйте удалить кеш вручную!", MsgBoxStyle.Critical)
            End Try
        Else
            MsgBox("Каталог не существует или был удален ранее!", MsgBoxStyle.Information)
        End If
    End Sub
 
    'КОНЕЦ КОДА КНОПКА ОЧИСТИТЬ КЕШ
 
 
 
    'КНОПКА РЕАЛМЛИСТ ДЛЯ ЛИЧКИНГА
 
    Private Sub PictureBox5_Click(sender As Object, e As EventArgs) Handles PictureBox5.Click
        Try
            My.Computer.FileSystem.WriteAllText(My.Application.Info.DirectoryPath.ToString & "\Data\ruRU\realmlist.wtf", "set realmlist lk", False)
            MsgBox("Сервер успешно записан в файл Realmlist!", MsgBoxStyle.Information)
        Catch ex As Exception
            MsgBox("Ошибка при записи в файла Realmlist!", MsgBoxStyle.Critical)
        End Try
    End Sub
 
    Private Sub PictureBox5_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox5.MouseEnter
        PictureBox5.BackgroundImage = My.Resources.realm_hover
    End Sub
 
    Private Sub PictureBox5_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox5.MouseLeave
        PictureBox5.Parent = Me
        PictureBox5.BackgroundImage = Nothing
    End Sub
 
    'КНОПКА РЕАЛМЛИСТ ДЛЯ ЛИЧКИНГА
 
 
    'КОНЕЦ КОДА КНОПКА РЕАЛМЛИСТ
 
 
 
    'КНОПКА РЕГИСТРАЦИИ
    Private Sub PictureBox7_Click(sender As Object, e As EventArgs) Handles PictureBox7.Click
        Process.Start("http://127.0.0.1/personal/?reg")
    End Sub
 
    Private Sub PictureBox7_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox7.MouseEnter
        PictureBox7.BackgroundImage = My.Resources.reg
    End Sub
 
    Private Sub PictureBox7_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox7.MouseLeave
        PictureBox7.Parent = Me
        PictureBox7.BackgroundImage = Nothing
    End Sub
 
    'КОНЕЦ КОДА КНОПКА РЕГИСТРАЦИИ
 
 
    'КНОПКА ФОРУМ
 
    Private Sub PictureBox8_Click(sender As Object, e As EventArgs) Handles PictureBox8.Click
        Process.Start("http://127.0.0.1/forum")
    End Sub
 
    Private Sub PictureBox8_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox8.MouseEnter
        PictureBox8.BackgroundImage = My.Resources.forum
    End Sub
 
    Private Sub PictureBox8_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox8.MouseLeave
        PictureBox8.Parent = Me
        PictureBox8.BackgroundImage = Nothing
    End Sub
 
    'КОНЕЦ КОДА КНОПКА ФОРУМ
 
    'КНОПКА ЛИЧНЫЙ КАБИНЕТ
 
    Private Sub PictureBox9_Click(sender As Object, e As EventArgs) Handles PictureBox9.Click
        Process.Start("http://127.0.0.1/personal/")
    End Sub
 
    Private Sub PictureBox9_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox9.MouseEnter
        PictureBox9.BackgroundImage = My.Resources.lk
    End Sub
 
    Private Sub PictureBox9_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox9.MouseLeave
        PictureBox9.Parent = Me
        PictureBox9.BackgroundImage = Nothing
    End Sub
    'КОНЕЦ КОДА КНОПКА ЛИЧНЫЙ КАБИНЕТ
 
 
    'КНОПКА НАСТРОЙКИ
 
    Private Sub PictureBox10_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox10.MouseEnter
        PictureBox10.BackgroundImage = My.Resources.settings
    End Sub
 
    Private Sub PictureBox10_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox10.MouseLeave
        PictureBox10.Parent = Me
        PictureBox10.BackgroundImage = Nothing
    End Sub
 
    Private Sub PictureBox10_Click(sender As Object, e As EventArgs) Handles PictureBox10.Click
        Form2.Show()
    End Sub
 
 
    'КОНЕЦ КОДА КНОПКА НАСТРОЙКИ
 
    'КОД КНОПКИ ПЕРЕКЛЮЧЕНИЯ РЕАЛМА
    Private Sub PictureBox11_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox11.MouseEnter
        PictureBox11.BackgroundImage = My.Resources.LOGO_ICON_hover
    End Sub
 
    Private Sub PictureBox11_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox11.MouseLeave
        PictureBox11.Parent = Me
        PictureBox11.BackgroundImage = My.Resources.LOGO_ICON
    End Sub
 
 
    'КОНЕЦ КОДА КОД КНОПКИ ПЕРЕКЛЮЧЕНИЯ РЕАЛМА
End Class
как лучше сделать?
0
XIST
1031 / 760 / 107
Регистрация: 01.10.2009
Сообщений: 2,357
Записей в блоге: 1
02.07.2015, 19:23 #7
Вам уже ответили, хотите такую красоту, через DirectX, и делать без граблей, пробуйте WPF
2
vova_king
22 / 22 / 9
Регистрация: 29.07.2010
Сообщений: 261
02.07.2015, 20:49 #8
Лично у меня не мерцает не чего!
Все норм
0
6stprod
http://jokenews.ru/
9 / 9 / 7
Регистрация: 07.02.2013
Сообщений: 179
02.07.2015, 21:46  [ТС] #9
vova_king, странно ()_О

То есть не вариантов сделать на visual studio?
0
02.07.2015, 21:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2015, 21:46
Привет! Вот еще темы с решениями:

Динамическое создание элементов управления (перевод с C#)
TextBox txtN; TextBox m; Button Stop1; TextBox nameM; ...

Поворот элементов управления на определенный градус
Как развернуть элемент управления (например кнопку )на 45 градусов и более?

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru