在已经打开的窗体上使用不同的窗体调用方法

本文关键字:窗体 调用 方法 | 更新日期: 2023-09-27 18:17:24

我已经尝试解决这个问题一段时间了。我已经检查了类似的帖子,但没有解决方案似乎工作。

我的问题是,我试图从一个名为'Log'的表单调用方法'Write'。

public void ActivityLog(string LogString)
{
    //Log what the system is doing for the user to see
    if (LogAll == true)
        {
            //check if the error logging form is open
            if (Application.OpenForms["Log"] != null)
            {
                //write to the log form
            }
            else
            {
                //the error log page is not yet open
                Log LogFrm = new Log();
                LogFrm.Show();
                //now the form is open log the error
                LogFrm.Write(LogString);
            }
        }
    }
}

现在,当我运行程序,我调用'ActivityLog', '日志'的形式打开,我输入的字符串确实出现,第二次我点击按钮的程序去我评论的地方'写到日志形式'。但是我找不到从已经打开的表单中再次调用该方法的方法。

表单'Log'将在整个程序使用过程中保持打开状态,并将从调用'ActivityLog'方法的不同表单中添加到。如有任何建议,我将不胜感激。

在已经打开的窗体上使用不同的窗体调用方法

试试这样做。

var LogFrm = Application.OpenForms["Log"] as Log;
if (LogFrm == null)
{
    LogFrm = new Log();
    LogFrm.Show();
}
LogFrm.Write(LogString);