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

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

20.11.2012, 13:19. Показов 3485. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2012, 13:19
Ответы с готовыми решениями:

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

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

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

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

4
637 / 591 / 90
Регистрация: 19.03.2012
Сообщений: 1,123
20.11.2012, 15:49 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

В представленном варианте 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
64 / 55 / 14
Регистрация: 22.10.2012
Сообщений: 275
20.11.2012, 17:28 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Добавь на форму: 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 4
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от 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
18 / 21 / 1
Регистрация: 23.04.2012
Сообщений: 616
15.01.2014, 15:07 5
Цитата Сообщение от 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2014, 15:07

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

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

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

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


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

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

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