Visual Basic - WriteLine с 2 или более цветов? - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу добавить в мои строки разные цвета: дыня, вишня и яблоко:

My favorite foods are: melon, cherry, apple

Я знаю только:

Console.ForegroundColor = ConsoleColor.Red
Console.WriteLine("line here")

Но это изменит всю строку на красный, а не только на одно слово.

Я также нашел это по вопросу здесь, в StackOverflow:

Private Shared Sub colorize(ByVal expression As String, ByVal word As String)
    Dim substrings() As String = expression.Split()

    For Each substring As String In substrings
        If substring.Contains(word) Then
            Console.ForegroundColor = ConsoleColor.Red
    End If
    Console.Write(substring &" ")
    Console.ResetColor()
    Next substring
    Console.WriteLine()
End Sub

Вышеприведенный код работает хорошо, но он находит совпадения word в вашей строке, затем окрашивает все результаты с указанным ForegroundColor, поэтому он не работает, когда есть два или более одинаковых слова. в вашей строке, и вы хотите, чтобы эти слова имели разные цвета.

Большая часть того, что я нашел, была в C #. Есть ли способ в VB?

1 Ответ

0 голосов
/ 01 ноября 2018

Вам не нужно использовать WriteLine, вы можете просто использовать Write.

    Console.Write("My favorite foods are: ")

    Console.ForegroundColor = ConsoleColor.Green
    Console.Write("melon")

    Console.ForegroundColor = ConsoleColor.White
    Console.Write(", ")

    Console.ForegroundColor = ConsoleColor.DarkRed
    Console.Write("cherry")

    Console.ForegroundColor = ConsoleColor.White
    Console.Write(", ")

    Console.ForegroundColor = ConsoleColor.Red
    Console.Write("apple")

Я не знаю, каков ваш вклад, поэтому трудно помочь больше. Но я надеюсь, что это даст вам представление о том, как действовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...