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

Создание бегущей строки, движение направо и налево

20.11.2012, 13:19. Показов 4327. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно создать бегущую строку. По рэдиобаттон есть движение налево и направо. Но нужно сделать так,чтобы label дохода до края формы продолжил снова свое движение. Т.е. непрерывное движение. На данный момент,допустим label достигая правого края исчезает и вновь с левого края движение не начинает. Как создать непрерывное движение?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
Public Class Form1
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If RadioButton1.Checked Then
            Label1.Left += 9 'движение влево
        Else : Label1.Left -= 9 'движение направо
        End If
 
 
    End Sub
End Class
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2012, 13:19
Ответы с готовыми решениями:

Вывод бегущей справа налево строки
Написать функцию, изображающую бегущую строку (справа налево) с каким-нибудь текстом.

Создание программы проверки условия одинаковой читабельности справа налево и слева направо
Здравствуйте, помогите пожалуйста понять, как написать программу, условие которой звучит как : "Написать программу, позволяющую...

Вывести на экран слова из этой строки, которые одинаково читаются слева направо и справа налево (палиндромы)
Составить программу, которая вводит с клавиатуры строку, содержащую до 80 символов, и выводит на экран слова из этой строки, которые...

4
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
20.11.2012, 15:49
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

В представленном варианте Label движется слева направо, затем возвращается к первоначальной точке и продолжает движение.

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
Public MaxPoint, MinPoint As System.Drawing.Point
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MaxPoint = New Point(240, 50)
        MinPoint = New Point(20, 50)
        Timer1.Start()
    End Sub
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If RadioButton1.Checked Then
            ToRight()
            If Label1.Location = MaxPoint Then
                Label1.Location = MinPoint
            End If
        End If
    End Sub
 
    Sub ToRight()
        Label1.Left += 10
    End Sub
 
    Sub ToLeft()
        Label1.Left -= 10
    End Sub
Как сделать движение "туда-обратно" пока "курю"...

Добавлено через 8 минут
Как вариант - предлагаю решение путём введения второго таймера. Коды таймеров:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If RadioButton1.Checked Then
            ToRight()
            If Label1.Location = MaxPoint Then
                Timer1.Stop()
                Timer2.Start()
            End If
        End If
    End Sub
 
    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        If RadioButton1.Checked Then
            ToLeft()
            If Label1.Location = MinPoint Then
                Timer2.Stop()
                Timer1.Start()
            End If
        End If
    End Sub
1
70 / 60 / 16
Регистрация: 22.10.2012
Сообщений: 351
20.11.2012, 17:28
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Добавь на форму: Label1, Label2, Timer1, CheckBox1
Label1 и Label2 сделай одинаковыми
и размести этот код
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
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Label1.Top = 30
        Me.Label2.Top = 30
        Me.Timer1.Interval = 10
        Me.Timer1.Enabled = True
        Me.Timer2.Interval = Me.Width * 2 + Me.Label1.Width * 2 + 1000
        Me.Timer2.Enabled = True
        Me.Label1.Visible = True
        Me.Label2.Visible = False
        Me.CheckBox1.Text = "Мотать вправо?"
    End Sub
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If Me.CheckBox1.Checked.ToString = True Then Me.Label1.Left += 5 Else Me.Label1.Left -= 5
 
        If Me.Label1.Left < 0 - Me.Label1.Width Then
            Me.Label1.Left = Me.Width - Me.Label1.Width
            Me.Label2.Visible = False
            Exit Sub
        End If
 
        If Me.Label1.Left > Me.Width Then
            Me.Label1.Left = 0
            Me.Label2.Visible = False
            Exit Sub
        End If
 
 
        If Me.Label1.Left < 0 Then
            Me.Label2.Left = Me.Width + Me.Label1.Left
            Me.Label2.Visible = True
            Exit Sub
        Else
            Me.Label2.Visible = False
        End If
 
        If Me.Label1.Left > Me.Width - Me.Label1.Width Then
            Me.Label2.Left = Me.Label1.Left - Me.Width
            Me.Label2.Visible = True
        Else
            Me.Label2.Visible = False
        End If
 
    End Sub
1
27 / 27 / 8
Регистрация: 30.04.2012
Сообщений: 96
21.11.2012, 08:26
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от klever Посмотреть сообщение
Нужно создать бегущую строку.
на форму кинуть Timer. Свойство таймера Enabled = True.
VB.NET
1
2
3
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = Microsoft.VisualBasic.Right(Label1.Text, Len(Label1.Text) - 1) & Microsoft.VisualBasic.Left(Label1.Text, 1)
    End Sub
5
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
15.01.2014, 15:07
Цитата Сообщение от fox1001 Посмотреть сообщение
на форму кинуть Timer. Свойство таймера Enabled = True.
VB.NET
1
2
3
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = Microsoft.VisualBasic.Right(Label1.Text, Len(Label1.Text) - 1) & Microsoft.VisualBasic.Left(Label1.Text, 1)
    End Sub

Как это остановить при конце строки???

Добавлено через 6 минут
Цитата Сообщение от uzlprog Посмотреть сообщение
Как это остановить при конце строки???
Понятное дело, что просто нужно убрать движение обратно:

VB.NET
1
Label1.Text = Microsoft.VisualBasic.Right(Label3.Text, Len(Label3.Text) - 1)
Но длинна не может быть -1((
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.01.2014, 15:07
Помогаю со студенческими работами здесь

Движение строки текста слева направо по кругу
Недавно начал учить немного аплеты с известной книги Шилдта ,там был такой пример где в аплете создаеться бегущая строка , она ишла в левую...

Создание бегущей строки
Объясните, пожалуйста, каким образом можно создать бегущую строку.

Создание бегущей строки
Необходимо создать программу, которая работает подобно бегущей строке Например: Слово Слов Сло Сл С

Создание бегущей строки.
Создать бегущую строку. Остановить бег строки при нажатии клавиши &lt;Esc&gt;. И если можно, посмотрите эти задачки: 1. Определить,...

Создание бегущей строки без таймера.
Мoжнo-ли сoздaть бегущую стрoку не испoльзуя тaймер спaсибo.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
[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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru