Конвертировать код PictureBox VB6 в VB.Net - PullRequest
0 голосов
/ 12 декабря 2011

Я делаю проект в vb.net, который уже сделан в vb6 У меня есть текстовое поле. Я хочу применить шрифт (стиль, цвет, имя, размер) к выделенному тексту. Я могу сделать это .. и хочу создать растровое изображение этого текста текстового поля, чтобы я мог создать матрицу из 0,1,2,3 цифр, если цвет текста красный, то 1 цифра, зеленый-2, оранжевый-3

Следующий код сделан в vb6, но я не получаю некоторые свойства в vb.net, такие как picture1.point picture1.print (здесь picture1 - это графическое окно) здесь Led - массив (цифры 0 или 1 или 2 или 3) converttodis - это функция, которая преобразует каждую букву в массив Код здесь

 Private Sub CmdPreview_Click()
On Error Resume Next
Dim i
Picture1.Cls
lRow = 0
Lcol = 0
ReDim Led(Picture1.TextHeight(TxtMsg.Text), Picture1.TextWidth(TxtMsg.Text))

For i = 1 To Len(TxtMsg.Text)
    TxtMsg.SelStart = i - 1
    TxtMsg.SelLength = 1
    Picture1.Font = TxtMsg.SelFontName
    Picture1.FontSize = TxtMsg.SelFontSize
    Picture1.FontBold = TxtMsg.SelBold
    Picture1.FontItalic = TxtMsg.SelItalic

   If Mid(TxtMsg.Text, i, 1) <> vbCr Then
    Picture1.Print Mid(TxtMsg.Text, i, 1)

    ConvertToDis i, TxtMsg.selcolor

 ElseIf Mid(TxtMsg.Text, i, 2) = vbCrLf Then
    i = i + 1
    lRow = lRow + Picture1.TextHeight(Mid(TxtMsg.Text, i - 2, 1))
    Lcol = 0
   Else

   Picture1.Print Mid(TxtMsg.Text, i, 1)
    ConvertToDis i, TxtMsg.selcolor
  End If
Next

End Sub


Public Function ConvertToDis(ByVal i As Long, ByVal col)

Dim CX, CY, f, f1, F2
Dim lsubrow, Lsubcol As Integer
lsubrow = lRow
Lsubcol = Lcol

For CY = 0 To Picture1.TextHeight(Mid(TxtMsg.Text, i, 1))
For CX = 0 To Picture1.TextWidth(Mid(TxtMsg.Text, i, 1))
  If Picture1.Point(CX, CY) < vbWhite - 4300000 Then

  If col = 255 Then
    LedCol(lsubrow, Lsubcol) = 1
  ElseIf col = 65280 Then
    LedCol(lsubrow, Lsubcol) = 2
  ElseIf col = 33023 Then
    LedCol(lsubrow, Lsubcol) = 3
  Else
    LedCol(lsubrow, Lsubcol) = 0
  End If
DoEvents
  Lsubcol = Lsubcol + 1
Next

 lsubrow = lsubrow + 1
 Lsubcol = Lcol
Next
Picture1.Cls
Lcol = Lcol + Picture1.TextWidth(Mid(TxtMsg.Text, i, 1))
End Function

для вывода длинных слов, как это

000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
000011111000000011111100001111101111000111110000000000
000001110000001111111110000111100111001111111100000000
000001110000001111000110000111100110011110001110000000
000001110000011111000011000111100110111110001000000000
000001110000011010000011000111100110110110000000000000
000001110000011010000011000111110110110111111110000000
000001110000011010000011000110110110110110001111000000
000001110000011010000011000110111110110111111110000000
000001110000011110000011000110011110111100001110000000
000001110000101110000111000110011110011100001110000000
000001110011100111001110000110001110011110001110000000
000011111111110011111100001111001110000111111110000000
000011111111110011111000011111001110000111111111000000
000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
000111111111111111111111111111111111111111111111110000
000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000

1 Ответ

0 голосов
/ 12 декабря 2011

С Графика для пользователей Visual Basic 6.0 :

В Visual Basic 2008 метод Point больше не существует.Вы можете использовать метод System.Drawing.Bitmap.GetPixel(System.Int32,System.Int32) для получения значения цвета из растрового изображения.Для форм или элементов управления, которые не содержат изображения, можно запросить свойство BackColor.

В Visual Basic 2008 используется метод DrawStringдля отображения текста.Шрифт определяется объектом Font, а цвет определяется объектом Brush;оба передаются как параметры в метод DrawString.Метод DrawString также имеет параметры X и Y, которые определяют начальную позицию для текста.Существует также необязательный параметр Format, который принимает объект StringFormat, позволяющий отображать текст вертикально.

...