CliffB82 Ответов: 1

Почему я получаю ошибку, когда formtoshow упоминается в предложении if в приведенной ниже процедуре


Я впервые пробую Visual c#

Can anybody tell me why I get an error when FormToShow is referenced in the if clause in the routine below


Процедура находится в статическом классе

Я вам 'типа или пространства имен 'FormToShow' не может быть найден (пропущена директива using или ссылка на сборку?)

Что я уже пробовал:

public void ShowForm(форма FormToShow)
{
foreach (frm в приложении.OpenForms)
{
if (frm - это FormToShow)
{
ФРМ.Показать();
}
}
}

1 Ответов

Рейтинг:
2

OriginalGriff

Потому что is ожидает тип, а не экземпляр.
Вы можете спросить

if (frm == FormToShow)
И он будет сравнивать, чтобы увидеть, является ли это фактическим экземпляром.
Но, вероятно, то, что вы хотите, это:
public static void ShowForm(Form FormToShow)
    {
    foreach (Form frm in Application.OpenForms)
        {
        if (frm.GetType().IsAssignableFrom(FormToShow.GetType()))
            {
            frm.Show();
            }
        }
    }


CliffB82

Спасибо, это работает