jeudi 8 septembre 2016

Create a Random Color to highlight text on in vb.net

Hello I am trying to create a function in vb.net to create a randomly generated color to highlight rows in a ListView on a form. The input to the code is SlaveID which is a Byte. The problem I am having is that if I input the Same SlaveID in multiple times, I will always get the same color output. Since Rnd takes in current time to make the number more random, the colour output changes every time I call this function even though my input value stays the same. Is there a random number generator that is not effected by time that would be an easy replacement for Rnd?

Private Function GetColourForRow(ByVal SlaveID As Byte)
    Dim ListViewItemColour As New ListViewItem        
    Dim upperbound As Byte = 255
    Dim lowerbound As Byte = 100
    Dim ColourA As Int16 = CInt(Math.Floor((upperbound * 2 - lowerbound + 1) * Rnd(SlaveID) + 2)) + lowerbound
    Dim ColourR As Int16 = CInt(Math.Floor((upperbound - lowerbound + 1) * Rnd(SlaveID))) + lowerbound
    Dim ColourG As Int16 = CInt(Math.Floor((upperbound - lowerbound + 1) * Rnd(SlaveID + 5))) + lowerbound
    Dim ColourB As Int16 = CInt(Math.Floor((upperbound - lowerbound + 1) * Rnd(SlaveID + 15))) + lowerbound        

Return ListViewItemColour.BackColor

End Function




Aucun commentaire:

Enregistrer un commentaire