вам нужно привести frm1 = (Form1)xfrmObj;
вместо form
в вашем Show1(xName,xfrmObj)
методе.
РЕДАКТИРОВАТЬ: ОП заявил в комментарии, что ему нужно этоработать для нескольких разных форм.Вы можете сделать так, чтобы все ваши формы реализовывали один и тот же Interface
, например:
public partial class Form1 : Form, ICanDisplay
{
public void disp(string strVal)
{ //...
}
}
public partial class Form2 : Form, ICanDisplay
{
public void disp(string strVal)
{ //...
}
}
public interface ICanDisplay
{
void disp(string strVal);
}
, затем измените свой метод, чтобы он приводил к ICanDisplay:
public class class1
{
private Form frm1;
public void Show1(string xName , object xfrmObj)
{
frm1 = (ICanDisplay) xfrmObj;
frm1.disp(xName);
}
}
Однако, как заметил @Heinzi, вы должны изменить свой метод Show1 на следующий:
public void Show1(string xName, IDisplayForm xfrmObj)
{
xfrmObj.Disp(xName);
}
, что сделает приведение совершенно ненужным.Следующим шагом является выбор значимых имен для ваших переменных, функций и классов .