método replace() en realidad no cambia el contenido de una cadena. Entonces debes asignar el nuevo valor a algo.
Un ejemplo:
someString = "First Example"
someString.Replace("First", "Second")
// someString is still "First Example"
newString = "Hello World".Replace("Hello", "Hi")
// newString is now "Hi World"
Algunos ejemplos: http://www.dotnetperls.com/replace-vbnet
Actualización:
Desde su comentario reciente, parece que lo que quiere es la siguiente:
TextBox1.Text.Replace("Hi", "temp").Replace("Hello", "HI").Replace("temp", "Hello")
Porque el segundo reemplazar está trabajando en el resultado de la primera sustitución. Ya no está trabajando en el texto original. Entonces para cambiar 'hola' por 'hola' y 'hola' por 'hola' debe tener algún valor intermedio.
¿por qué no hacerlo en 2 líneas? – Nick
incluso no funciona, entonces ... – shahbaz
¿Está * seguro * reemplazando el primero? – David