【问题标题】:c# access form element from another classc# 从另一个类访问表单元素
【发布时间】:2013-12-21 10:04:10
【问题描述】:

我在一个类中有一个列表视图元素listViewMedia,并想用另一个文件中的数据更新它(基本上是字符串) 所以,我创建了一个公共方法

 public void addToListViewMedia()
 {  
     listViewMedia.Items.Add(new ListViewItem("datafromotherfile"));
 }

在第一个类中添加数据,但我无法从其他类访问它。 我究竟做错了什么?我已经尝试通过将元素设置为 public 来直接访问该元素,但这也没有成功,更不用说会给我的代码带来的糟糕风格了。 从同一个类更新它正在工作,顺便说一句......

【问题讨论】:

  • 共享其余代码可能会有所帮助。您的课程是公开的还是彼此可以访问的?您的 IDE 中是否出现错误(假设您正在使用一个)?请更具体。
  • 请分享您访问addToListViewMedia()方法的代码
  • 我正在尝试使用 VS 2013 中的 buttonclick 事件访问它,而在 Intellisense 中我找不到它,如果我输入该方法,则错误在当前上下文中不存在,但它是公开的,所以我应该可以访问它,对吧?私人无效ausführenButton_Click(对象发送者,EventArgs e){returnListViewMedia(); }
  • 如果您遇到错误,显然这是不对的。在您的原始代码示例中没有提到returnListViewMedia()
  • 方法名变了,我从另一个版本得到的,现在的名字是 returnListViewMedia();但是还是不行

标签: c# class listview setter


【解决方案1】:

问题:您不能访问其他类的成员,即使它们被声明为public

解决方案:您应该在instance variable的帮助下访问其他class memebers

注意:如果您可以提供更多详细信息/代码,我们可以以更好的方式帮助您。

试试这个:示例

Class A
{

   public void addToListViewMedia()
    {    
        listViewMedia.Items.Add(new ListViewItem("datafromotherfile"));
    }

}

Class B
{

     private void ausführenButton_Click(object sender, EventArgs e)
     { 
        A obj=new A();  //create instance variable.
        obj.addToListViewMedia();//access methods of A using instance variable
     } 

}

【讨论】:

  • 好的,成功了。谢谢你。那么Public只是意味着你可以通过这种方式访问​​它,而private方法根本无法访问?
  • acceess modifier 表示class 之外的其他成员如何访问该成员。 pubic 是一种指定类外的任何人都可以访问它的类型,私有意味着类外的任何人都不能访问它。在任何一种情况下,您都应该使用实例变量访问成员
猜你喜欢
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多