我试图在另一个类的类内部使用一种方法。

namespace Crystal.Utilities
{
   public class Logging
   {
      public static void Log()
      {
          //dostuff
          Crystal.MainForm.general_log_add_item("Hello World");
      }
   }
}

namespace Crystal
{
   public partial class MainForm : Form
   {
      public void general_log_add_item(string msg)
      {
         listBox1.Items.Add(msg);
      }
   }
}


我希望能够从任何地方调用Crystal.Utilities.Logging.Log(),并且能够调用Crystal.MainForm.general_log_add_item()。但是它不允许我这样做,因为如果我将其公开发布,那么我将看不到它,如果它是静态的则无法与我的列表框进行交互。

最佳答案

您必须了解窗口不是静态的,他有一个实例,这就是为什么该方法不能静态的原因,
您可以使用
Application.Windows到达此实例并调用add方法。

或者,您也可以在其构造函数中的另一个类中注册窗口,该类将介导Logging和窗口。

如果您听不懂,请告诉我,我会尽量保持清楚

07-28 02:27
查看更多