Не понимаю почему так!!!

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Не понимаю почему так!!!

Сообщение PetrOFFs » 30.06.2006 (Пт) 6:42

Я хочу создать калькулятор для этого я вставил в форму (TextBox, и несколько Button) После этого я пишу код для кнопки что бы при нажатии на неё в текстовом поле отображалась та цифра которая указана в этом коде. Но когда нажимаеш на другую кнопку текстовое поле очищается и пишется другая цифра. И ещё когда нажимаеш на кнопку цифра печатается только 1 раз, а надо чтобы повторялась!!!

и еще если кто знает другие сайты про Visual Basic .NET пожалуйста дайте ссылки.

Вот пример кода:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
txtSource.Text = "3"
End Sub

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 30.06.2006 (Пт) 7:38

ну и чего ты ждешь? ты ж при каждом нажатии на кнопку переприсваиваешь значение текстовой строки.. ;)))

попробуй так:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
txtSource.Text += "3"
End Sub
Max

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Сообщение PetrOFFs » 30.06.2006 (Пт) 8:56

kroskros
Большое тебе спасибо!!!!! А я столько мучался делал, а тут все просто.

У меня есть ещё один вопрос ЕСТЬ такой оператор WriteLine который умеет считать, но он выводит результаты в окно Output, а как зделать что бы в текстовое поле выводил :?:

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 30.06.2006 (Пт) 9:06

PetrOFFs писал(а):kroskros
Большое тебе спасибо!!!!! А я столько мучался делал, а тут все просто.

У меня есть ещё один вопрос ЕСТЬ такой оператор WriteLine который умеет считать, но он выводит результаты в окно Output, а как зделать что бы в текстовое поле выводил :?:


а на кой тебе это?
вводишь число, нажимаешь +, сохраняешь число в переменную, вводишь другое число, нажимаешь =, складываешь переменную и текстовое поле, выводишь резельтат
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 30.06.2006 (Пт) 9:18

lord0n писал(а):а на кой тебе это?
вводишь число, нажимаешь +, сохраняешь число в переменную, вводишь другое число, нажимаешь =, складываешь переменную и текстовое поле, выводишь резельтат


ну.. может человеку хочется видеть, КАКУЮ именно цифру он нажал?
ну.. по типу обычного калькулятора? ;)
Max

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Сообщение PetrOFFs » 30.06.2006 (Пт) 9:30

lord0n
А ты не мог бы показать ето ввиде кода!?

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 30.06.2006 (Пт) 9:40

PetrOFFs писал(а):lord0n
А ты не мог бы показать ето ввиде кода!?


если хочешь научится писать проги - думай сам (алгоритм выше)

Код: Выделить всё

ublic Class Form1
   Dim x As Integer
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Label1.Text = Label1.Text & 1
   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      x = Label1.Text
   End Sub

   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
      Label1.Text = Val(Label1.Text) + x
   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   End Sub
End Class
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 30.06.2006 (Пт) 9:52

PetrOFFs
Я хочу создать калькулятор для этого я вставил в форму

не в обиду, просто меня улыбнуло
А ты не мог бы показать ето ввиде кода!?
:)

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Сообщение PetrOFFs » 30.06.2006 (Пт) 9:53

lord0n
Понимаеш я только учусь и до меня доходят струдом эти моменты :(

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Сообщение PetrOFFs » 30.06.2006 (Пт) 9:55

Ramzes
Ты на счёт "ето"?!

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 30.06.2006 (Пт) 9:57

PetrOFFs
нет, я насчет: "Я хочу сделать калькулятор, но не умею, создайте его за меня, а я гордо посмотрю исходники" :) Только чесно, не в обиду :wink: Я понимаю, что ты совсем новычек...ну купи тогда книгу умную в самом деле

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 30.06.2006 (Пт) 10:06

Калькулятор-моя первая программа 3 недели страдал :( Изображение, тоже был новичком, а потом дал пользователю попользоваться и он после некотрых нажатий на разные кнопки добился ошибки.... исправил и потом опять тоже самое....я это к тому же что правда когда сам додумываешься легче, но дольше, а иногда настолько....дое....что охота у кого-нить спросить...т.к. руки опускается 8) так что не судите строго профессионалы нас новичков... :wink:
Я не волшебник, я просто учусь.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 30.06.2006 (Пт) 10:17

dmitriy22 писал(а):Калькулятор-моя первая программа 3 недели страдал :( Изображение, тоже был новичком, а потом дал пользователю попользоваться и он после некотрых нажатий на разные кнопки добился ошибки.... исправил и потом опять тоже самое....я это к тому же что правда когда сам додумываешься легче, но дольше, а иногда настолько....дое....что охота у кого-нить спросить...т.к. руки опускается 8) так что не судите строго профессионалы нас новичков... :wink:


не поверишь моя первая прога тоже была колькулятор
но тогда мне неукого было спрашивать - инета небыло: 1995 год
пришлось закупать литературу и вперед
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 30.06.2006 (Пт) 11:42

ну тода НА тебе задачу:
- Не забудь предусмотреть ввод не только мышью но и отлавливая нажатия NUM-клавиш и клавиш на основной клаве.. ;)))

2 - забудь про WriteLine, при работет с формами это не совсем то, чего те надо, он пишет в поток (вроде... ;) )

попробуй использовать
приведение типа - Д =CType(А, Б)
а - переменная которую надо преобразовать
Б тип в который надо преобразовать
Д - целевая переменная

вот
Max

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 30.06.2006 (Пт) 11:50

lord0n писал(а):не поверишь моя первая прога тоже была колькулятор
но тогда мне неукого было спрашивать - инета небыло: 1995 год
пришлось закупать литературу и вперед


Ну тода, самый старший здесь - Я
я написал свою первую прогу, кода еще ПК не было! :farao:
Max

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 30.06.2006 (Пт) 11:59

kroskros а где же ты ее проверял??? :wink:
Я не волшебник, я просто учусь.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 30.06.2006 (Пт) 12:17

dmitriy22 писал(а):kroskros а где же ты ее проверял??? :wink:


ИХМО на бумажке :lol:
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 30.06.2006 (Пт) 12:41

lord0n писал(а):
dmitriy22 писал(а):kroskros а где же ты ее проверял??? :wink:


ИХМО на бумажке :lol:


мощно...."так закалялась сталь"...да зато потом на компе все гораздо проще было...
Я не волшебник, я просто учусь.

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Сообщение PetrOFFs » 30.06.2006 (Пт) 13:05

lord0n
Из представленного кода я так понимаю здесь 1 переменая (Но числа та 2 нужно складывать или больше) и по чему когда сладываеш экран не очищается

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 30.06.2006 (Пт) 13:57

PetrOFFs
вообще калькулятор я писал в основном используя работу со строками...т.е. чтобы очистить поле можно применить метод
Код: Выделить всё
TRIM(здесь прописываются те символы котрые надо удалить)
Я не волшебник, я просто учусь.

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Сообщение PetrOFFs » 30.06.2006 (Пт) 14:16

А что бы стереть все надо указать имя текстогово поля?

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 30.06.2006 (Пт) 14:39

Рыдаю... :D

TO - dmitriy22
именна... до сих пор плохо от тех ОСНОВ ИНФОРМАТИКИ
которые ввели в те годы в школах.... ;)

ТО - PetrOFFs
1 - "складываешЬ" пишем с мягким знаком, да? ;)
2 - определись, как работает твой каРкулятор...
шаг а) - вводишь первое число
шаг б) - вводишь операцию
шаг в) - вводишь второй операнд
шаг г) - жмешь равно - получаешь результат.
(осспади, как похоже на ТОТ язык! )))))))))
сижу и ностальгирую....


организуем (тупо но эффективно):
- вводишь по нажатию кнопочек число, которое набирается в
текстбоксе, по нажатию любой из клавиш операций, делаешь:
А=CType(MyTexbox.Text, real) (мне стыдно, но я не помню, КАК именно зовется вещественный тип в VS, будем считать REAL :) )
затем по нажатию первой кнопки ввода второго операнда
чистишь поле и
набираешь второе число,
при нажатии "=" делаешь:
B = CType(MyTexbox.Text, real)
И проворачиваешь выбранную операцию с числами А и В,
результат выводишь в текстбокс.текст

останется решить несколько "мелочей", по типу:
- как быть если надо нажимать не равно, а другой знак мат. операции (родить собственный парсер???);
- КАК передавать оператор;
и еще чего-то там надо, просто счаз на ум не идет... )))

ДЕРЗАЙ! )))))))
Последний раз редактировалось kroskros 30.06.2006 (Пт) 14:47, всего редактировалось 1 раз.
Max

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 30.06.2006 (Пт) 14:44

dmitriy22 писал(а):PetrOFFs
вообще калькулятор я писал в основном используя работу со строками...т.е. чтобы очистить поле можно применить метод
Код: Выделить всё
TRIM(здесь прописываются те символы котрые надо удалить)


а MyTextBox.Text = "" уже не модно???
Max

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 30.06.2006 (Пт) 14:52

kroskros

я реализовывал нажатие любой цифры через sender
а затем при нажатии цифры выполнялись множества условий
если необходимо добавить в новую цифру, а потом еще одну в окне я использовал
Код: Выделить всё
Stroka = Stroka.Insert(CDbl(Len(Stroka)), "к примеру цифра 9")
                            Me.txtText.Text = Stroka

а вот это используется если пользователь нажал клавишу "+", то
Код: Выделить всё
If Stroka = Stroka.StartsWith("1") Or....другие символы.... Then
                            Stroka = Stroka.Trim("1", "2", ....другие символы...)

                            Stroka = Stroka.Insert(CDbl(Len(Stroka)), "цифра 9")
                            Me.txtText.Text = Val(Stroka)

или по-другому.....по моему можно так реализовать?! :wink:
Я не волшебник, я просто учусь.

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 30.06.2006 (Пт) 14:52

И вообще, использовать функции работы со строками при использовании чисел - :shock:

Проще так:

Код: Выделить всё
Public Sub btn3_Click(...)...
   i=i*10+3
   Label1.Text=i
End Sub
[Место cдаётся]

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 30.06.2006 (Пт) 14:59

Денис Победря у каждого наверное свой подход, хотя так кончно проще :wink:
Я не волшебник, я просто учусь.

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Сообщение PetrOFFs » 30.06.2006 (Пт) 15:19

kroskros
Вот смотри:

Такой код у меня записан в кнопке "1"
pole.Text += "1"

После её нажатия в текстовое поле пишется "1"
Потом я нажимаю на "+" где у меня введён

pole.Text = Val(pole.Text) + x
x =pole.Text

И после этого он выводит ответ (складывает чило которое было введено в текстовое поле само на себя)

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 30.06.2006 (Пт) 15:26

PetrOFFs писал(а):kroskros

pole.Text = Val(Label1.Text) + x
x = Label1.Text

еще бы он не складывал....??? :? ты должен кнопкой "+" запомнить число которое у тебя в label записано..... :?
Я не волшебник, я просто учусь.

PetrOFFs
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 24.06.2006 (Сб) 15:50
Откуда: Омск

Сообщение PetrOFFs » 30.06.2006 (Пт) 15:29

Ну а как зделать!!!

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 30.06.2006 (Пт) 15:31

dmitriy22
можно. если работало, то МОЖНО! ))))

Денис Победря
тоже можно, но надо учитывать вариант работы с десятичной точкой.. ;)

PetrOFFs
Про VAL. ничего не скажу... потом, проверю, но если считает, то почему бы и нет? )))

но как-то мне это все Паскалем отдает... ;)
Max

След.

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

    TopList