Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
 Аватар для Веди
18 / 13 / 1
Регистрация: 04.07.2012
Сообщений: 523

Вывод текста на форму

02.06.2019, 13:16. Показов 7397. Ответов 10

Студворк — интернет-сервис помощи студентам
привет друзья
можно в vb.net вывести обычный текст
не графический как в примере:
VB.NET
1
2
3
4
5
6
7
8
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim prnt As Graphics = Me.CreateGraphics
        Dim x As String = "127"
        Dim FN As New Font("ARIAL", 20, FontStyle.Bold)
        prnt.DrawString(x, FN, Brushes.Black, 0, 0)
    End Sub
End Class
а как аналог vb6
Visual Basic
1
 Print "текст"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2019, 13:16
Ответы с готовыми решениями:

Вывод текста на форму
как можно вывести текст на форму? вот код на VB 6.0 Private Sub Command1_Click() x = 127 Print "Значение x="; x ...

Вывод на форму текста в цикле
Public Class Form4 * *** Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles...

Вывод текста на форму, аналогично Print в VB6
Пытаюсь выполнить вывод текста на форму но выдаёт такую ошибку

10
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,255
02.06.2019, 14:18
Веди, нет такого аналога, только рисовать.
но в vb6 это тоже самое, просто меньше текста, а вы можете писать и покороче так:

VB.NET
1
2
Dim x = "127"
CreateGraphics.DrawString(x, Me.Font, Brushes.Black, 0, 0)
1
 Аватар для Веди
18 / 13 / 1
Регистрация: 04.07.2012
Сообщений: 523
02.06.2019, 15:13  [ТС]
Yury Komar, это так
но здесь надо создавать событие паинт
на форм1 он не хотит рисовать

Добавлено через 25 минут
да и ещё
как перевод строки сделать
координатами неудобно оперировать
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,255
02.06.2019, 15:36
Лучший ответ Сообщение было отмечено Веди как решение

Решение

Веди, ненадо событие Paint создавать, просто после запуска формы укажите
VB.NET
1
Me.ResizeRedraw = True
Зачем координатами, когда в тексте просто добавьте перевод строки так
VB.NET
1
Dim txt As String = "Первая строка" & vbCrLf & "Вторая строка"
2
 Аватар для Веди
18 / 13 / 1
Регистрация: 04.07.2012
Сообщений: 523
02.06.2019, 18:19  [ТС]
Yury Komar, не рисует
что-то не так я делаю подскажите
вот ресурс:classbox.rar
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,255
04.06.2019, 07:24
Веди, Не срабатывает в Load потому что, после Load происходят еще события:
Документация
Порядок событий в формах Windows Forms
Особый интерес для разработчиков представляет порядок, в котором вызываются события в приложениях Windows Forms, для обеспечения обработки каждого из этих событий в свою очередь. Если ситуация требует аккуратной обработки событий, например когда производится перерисовка части формы, то необходимо знать точный порядок, в котором вызываются события во время выполнения. В этом разделе приведены некоторые сведения о порядке событий, возникающих на нескольких важных этапах жизненного цикла приложений и элементов управления.

События запуска и завершения работы приложения
Классы Form и Control предоставляют набор событий, связанных с запуском и завершением приложения.

При запуске приложения Windows Forms события запуска главной формы вызываются в следующем порядке:
• Control.HandleCreated
• Control.BindingContextChanged
• Form.Load
• Control.VisibleChanged
• Form.Activated
• Form.Shown


При закрытии приложения события запуска главной формы вызываются в следующем порядке:
• Form.Closing
• Form.FormClosing
• Form.Closed
• Form.FormClosed
• Form.Deactivate


Событие ApplicationExit класса Application вызывается после событий завершения работы основной формы.

События, связанные с фокусом и проверками
При изменении фокуса с помощью клавиатуры (при нажатии клавиш TAB, SHIFT+TAB и так далее), путем вызова методов Select или SelectNextControl, либо присвоением свойства ActiveControl текущей форме, события фокуса ввода класса Control происходят в следующем порядке:

• Enter
• GotFocus
• Leave
• Validating
• Validated
• LostFocus


При изменении фокуса ввода с помощью мыши или путем вызова метода Focus события фокуса класса Controlпроисходят в следующем порядке.

• Enter
• GotFocus
• LostFocus
• Leave
• Validating
• Validated




Можно ваш проект переделать таким образом, если вы уж так не любите создавать новое событие в коде, пожно вынести всю процедуру в отдельный метод и подписать событие Paint к немую

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 Class Form1
    Sub DrawText()
        Dim b(4) As Box
        b(0) = New Box()
        b(1) = New Box(3, 4, 5)
        b(2) = New Box(4.0)
        b(3) = New Box(4)
        b(4) = New Box()
        Using G = Me.CreateGraphics
            Dim FN As New Font("ARIAL", 12, FontStyle.Bold)
            For i = 0 To 4
                G.DrawString(b(i).Volume.ToString, FN, Brushes.Black, 0, i * 25)
            Next
            b(0).wid = 10
            b(0).hei = 10
            b(0).dep = 10
            G.DrawString(b(0).Volume.ToString, FN, Brushes.Black, 0, 125)
        End Using
    End Sub
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.ResizeRedraw = True
        AddHandler Me.Paint, AddressOf DrawText
    End Sub
End Class
Вложения
Тип файла: zip classbox.zip (249.9 Кб, 2 просмотров)
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,255
04.06.2019, 07:29
Либо, с учетом вышеизложенного в Документации, просто выполните ваши действия в событии Show:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Class Form1
    Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        Me.ResizeRedraw = True
        Dim b(4) As Box
        b(0) = New Box()
        b(1) = New Box(3, 4, 5)
        b(2) = New Box(4.0)
        b(3) = New Box(4)
        b(4) = New Box()
        Using G = Me.CreateGraphics
            Dim FN As New Font("ARIAL", 12, FontStyle.Bold)
            For i = 0 To 4
                G.DrawString(b(i).Volume.ToString, FN, Brushes.Black, 0, i * 25)
            Next
            b(0).wid = 10
            b(0).hei = 10
            b(0).dep = 10
            G.DrawString(b(0).Volume.ToString, FN, Brushes.Black, 0, 125)
        End Using
    End Sub
End Class
0
 Аватар для Веди
18 / 13 / 1
Регистрация: 04.07.2012
Сообщений: 523
04.06.2019, 07:40  [ТС]
Yury Komar, такой код ещё больше запутывает
что будет дальше
согласитесь что команда print в vb6 уникальна
и самодостаточна
с ней можно делать что угодно
и она ничего не требует взамен
и я удивляюсь что в vb.net
отказались от неё
"выплеснули с водой ребёнка"
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,255
04.06.2019, 07:57
Веди, а что вам мешает сделать свою команду принт?
0
 Аватар для Веди
18 / 13 / 1
Регистрация: 04.07.2012
Сообщений: 523
04.06.2019, 08:30  [ТС]
Yury Komar, подскажите с чего начать?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,255
04.06.2019, 10:07
Лучший ответ Сообщение было отмечено Веди как решение

Решение

Веди, можно так, может быть костыль и есть другие способы получить имя вызывающей формы
VB.NET
1
2
3
4
5
6
7
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ResizeRedraw = True
        Dim txt As String = "Первая строка" & vbCrLf & "Вторая строка" & vbCrLf & "Третья строка"
        Print(Me, txt)
    End Sub
End Class
Добавь такой модуль в проект
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Module PrintModule
    Dim t As String = ""
    Dim lf, tp As Integer
    Dim f As Form
    Private Sub PrntCheck(sender, e)
        Using G = f.CreateGraphics
            G.DrawString(t, New Font("ARIAL", 12, FontStyle.Bold), Brushes.Black, lf, tp)
        End Using
    End Sub
    Sub Print(Ctrl As Form, txt As String, Optional Left As Integer = 0, Optional Top As Integer = 0)
        AddHandler Ctrl.Paint, AddressOf PrntCheck
        f = Ctrl
        lf = Left
        tp = Top
        t = txt
    End Sub
End Module
Вобщем суть такая, формируете текст, который ваш нужно отрисовать, и передаете его в Print...
Изображения
 
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2019, 10:07
Помогаю со студенческими работами здесь

Вывод текста на форму
Добрый вечер, такой вопрос: В oracle forms (pl/sql) по нажатию кнопки делаю select из таблицы (выбираю фамилию в переменную varchar2)....

Вывод текста на форму
Ребята, подскажите пожалуйста, как можно по одному символу выводить текст на экран? есть мысль сделать сценарий из функции DrawText но...

Вывод текста на форму
Привет. Мне надо вывести в label или edit переменную плюс текст: как это можно сделать? Form1->Edit1->Text...

Вывод текста на форму
Как его осуществить?

Вывод текста на форму
Добрый день. Не могу придумать способ вывести на форму текст Есть такой код procedure TForm1.FormKeyPress(Sender: TObject; var...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru