如何访问窗体子类私有的窗体基类变量或函数(c#)

本文关键字:窗体 基类 类变量 函数 子类 何访问 访问 | 更新日期: 2023-09-27 18:06:06

我正在用c#编写一个windows窗体应用程序。我把设计改成了菜单。我有基类和几个子类的每个菜单项。我的问题是在我的基类中,我正在访问GUI元素并将其值存储在公共变量中。现在我想从我的子类访问这个。

public partial class x: Form
{
 # calling this public method from child class to to get the variable value 
      public string Getlogpath()
           {
               Console.WriteLine(this.logpath);
               return logsdirectory.Text;
           }
     private void reportFromLogsToolStripMenuItem_Click(object sender, EventArgs e)
            {                       
               Form2 child1 = new Form2();                  
               this.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade);                        
               child1.Show();            
          }
 public void browse_Click(object sender, EventArgs e)
       {
           FolderBrowserDialog fbd = new FolderBrowserDialog();
           fbd.SelectedPath = (@"''comprion02'ots'SHARED'T'COMPRION SIMfony'Log-Files");
           fbd.ShowDialog();
           logsdirectory.Text = fbd.SelectedPath;
           logpath = logsdirectory.Text;
           # this print i get value i need
           Console.WriteLine(logpath);
       }
}
#child form class
 public partial class Form2 : Form
{
 private void button1_Click(object sender, EventArgs e)
        {
            string data;
            x obj = new x();           
            data = obj.Getlogpath();
           #got nothing for this print
           Console.WriteLine(x);
        }
 }

有人能帮我一下吗

如何访问窗体子类私有的窗体基类变量或函数(c#)

Console.WriteLine(Form.Getlogpath());代替Console.WriteLine(x);

或者创建Form类的对象而不是X类:

           Form obj = new Form();
           Console.WriteLine(obj.Getlogpath());

为什么不使用关键字protected而不是private或public呢?点击这里查看更多信息- http://msdn.microsoft.com/en-us/library/wxh6fsc7(v=vs.71).aspx