El problema que tienes suena a que en VB.NET -dios sabe por qué oscura razón- si no especificas el ámbito de las variables miembra éstas se consideran publicas. En C# por el contrario son privadas por defecto -lo que debería ser lógico y normal... di tú que VB nunca fue muy lógico ni muy normal.
Por tanto en VB puedes hacer algo como
form1.BarraProgreso.Value
y en C# no, porque en el primero tienes acceso público a la variable miembro, y en el segundo no
Si lo que quieres es acceder desde una clase a una variable miembro de otra clase y modificarla tienes muchas soluciones. La más sencilla es establecer la variable miembro como pública, algo realmente chapucero.
También puedes exponer la variable miembro como una propiedad, pero en este caso sería como establecerla pública pero escribiendo más.
Algo un poco más elegante es exponer en tu clase form1 el dato que necesitas de la variable miembro como una propiedad (o método), por ejemplo:
public class Form1 : System.Windows.Forms.Form
{
...
private ProgressBar ProgressBar1 ;
...
public int ProgressBarValue
{
get { return this.ProgressBar1.Value; }
set { this.ProgressBar1.Value = value; }
}
...
}
y entonces podrías hacer:
Form1 form1 = new Form1();
form1.ValorBarraProgreso = 20;
Pero en tu caso particular (acceder a form1 desde otra clase) tendrías que tener una referencia a la instancia de form1 para poder acceder a la propiedad que acabas de crear. Eso lo puedes hacer pasándo form1 como referencia en el constructor de la clase y guardándola en una variable miembro privada a la clase (Dependency Injection):
public class class1
{
private Form1 _mainForm;
public class1(Form1 f)
{
//TODO: test f == null
_mainForm = f;
}
public void SetFormProgressBarValue(int value)
{
_mainForm.ProgressBarValue= value;
}
}