Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: textbox Добавлено: 10.09.04 16:52  

Автор вопроса:  Reborn
Надо чтобы текст в textboxe заполнялся по одному знаку, а не писался сразу весь, в 101 VB samples я не понял, обьясните как можно проще. Спасибо.

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #1 Добавлено: 10.09.04 20:14
Так тебе надо, чтобы он из файла читал по одному знаку и писал их в textbox?

Ответить

Номер ответа: 2
Автор ответа:
 Reborn



Вопросов: 8
Ответов: 9
 Профиль | | #2 Добавлено: 11.09.04 01:18
Надо так:

Я тыкаю на button и в textbox по одной появлялись буквы, а текст уже есть в программном коде.
А именно:
textbox1.text="Александр - великий программист :)."
При таком раскладе появится все сразу, а как по одной?

Ответить

Номер ответа: 3
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #3 Добавлено: 11.09.04 02:30
Наверное, так, если я правильно тебя понял
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    ‘вместо этой ф-ии можно использовать таймер
Private Sub Command1_Click()
    ;Dim CurrSimbol As String
    ;Dim str As String
    str = "Александр - великий программист :)."
    ;Do While Len(str) > 0
        CurrSimbol = Left(str, 1)
        str = Right(str, Len(str) - 1)
        Text1.Text = Text1.Text & CurrSimbol
        Text1.Refresh
        Sleep 100
    Loop
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #4 Добавлено: 11.09.04 02:53
Постите, не заметил что про NET...

Ответить

Номер ответа: 5
Автор ответа:
 Reborn



Вопросов: 8
Ответов: 9
 Профиль | | #5 Добавлено: 11.09.04 02:55
Он подчеркнул мне такие слова как:
Declare
Right
Left
Sleep
Что делать, если я тебе еще не надоел? :|

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 11.09.04 13:19
Если тебе нужно, чтоб добавлялась буква, когда ты кликаешщь по кнопке:

Private LetterPosition As Integer

Private Sub cmdLoadTextFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLoadTextFile.Click
If OFD.ShowDialog = DialogResult.OK Then
Dim SR As New System.IO.StreamReader(OFD.FileName, System.Text.Encoding.GetEncoding(1251))
txtText.Tag = SR.ReadToEnd
SR.Close()
LetterPosition = 0
End If
End Sub

Private Sub cmdAppendOneLetter_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdAppendOneLetter.Click
If LetterPosition < txtText.Tag.ToString.Length Then
txtText.Text = txtText.Tag.ToString.Substring(0, LetterPosition + 1)
LetterPosition += 1
End If
End Sub

(блин, все равно сейчас форматирование нафик сползет:((()

Вот такой код будет с интервалом 100 мс добавлять к тексту одну букву
сразу после загрузки файла:

Private Sub cmdLoadTextFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLoadTextFile.Click
If OFD.ShowDialog = DialogResult.OK Then
Dim SR As New System.IO.StreamReader(OFD.FileName, System.Text.Encoding.GetEncoding(1251))
Dim strTemp As String = SR.ReadToEnd
Dim i As Integer
SR.Close()

For i = 0 To strTemp.Length - 1
txtText.Text = strTemp.Substring(0, i + 1)
'Да простят меня знатоки .NET за эту строчку, но
'что-то жутко сейчас не хочется новый поток
'создавать:)))
System.Windows.Forms.Application.DoEvents()
'Вместо 100 поставь нужный тебе интервал
System.Threading.Thread.CurrentThread.Sleep(100)
Next
End If
End Sub

Если это не заработает, то я не .NET-программист с полуторалетним
опытом работы:)))

Ответить

Номер ответа: 7
Автор ответа:
 Reborn



Вопросов: 8
Ответов: 9
 Профиль | | #7 Добавлено: 11.09.04 17:28
Artyom, можешь называть меня любыми словами!!!
Я ламер!
У меня ни фига не получается, СМЕРТЬ Гейтсу!!!
Можно ли как-то упростить эту штуку, мне не надо чтобы текст загружался с готового текстового файла. Он уже есть в программном коде.
textbox.text="Билл Гейтс - сами знаете кто..."
Вот эта штука должна появиться по одной букве, загрузка не нужна...
Как можно проще... please... :((((

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 12.09.04 01:33
ОК. У тебя есть готовый текст.
Нжуно его поместить во временное глобальное хранилище. Я, как видишь,
использовал свойство TextBox.Tag для этого.

Просто напиши:
TextBox1.Tag="Билл Гейтс крут!"

А потом код, приведенный в событии cmdAppendOneLetter_Click, или во
2-м куске кода.

Ответить

Номер ответа: 9
Автор ответа:
 Reborn



Вопросов: 8
Ответов: 9
 Профиль | | #9 Добавлено: 12.09.04 03:10
Получилось!!! По-лу-чи-лось!!!
Можешь носить звание NET программиста с полуторолетним стажем дальше...
Ты спас жизнь сразу двум существам - человеку и программе!
Но Гейтс все равно умрет!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам