Страница: 1 |
Страница: 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()
 im CurrSimbol As String
 im str As String
str = "Александр - великий программист ."
 o 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 программиста с полуторолетним стажем дальше...
Ты спас жизнь сразу двум существам - человеку и программе!
Но Гейтс все равно умрет!