当前位置: 首页 > 知识库问答 >
问题:

如何通过在一个窗体中按下按钮创建对象并传递给另一个窗体?

郝永思
2023-03-14

我正在创建一个简单的应用程序,使用GMap在c#上处理地图。NET控件。所以,我的问题是:我想用另一种形式制作多边形、多段线和标记。我的代码是:

第一种形式(MapModule):

    GMapOverlay polygonOverlay = new GMapOverlay("polygons");
    GMapOverlay markersOverlay = new GMapOverlay("markers");
    GMapOverlay polylineOverlay = new GMapOverlay("polylines");

第二种形式(新文件):

public MapModule _MapModule;
        public Newfile(MapModule MapModule)
        {
            InitializeComponent();
            _MapModule = MapModule;
        }
private void addpolygon_Click(object sender, EventArgs e)
        {
            GMapPolygon polygon = new GMapPolygon(points, "What you need");
            _MapModule.polylineOverlay.Polygons.Add(polygon);
        }

输出是:

谷歌地图。“MapModule.polylineOverlay”由于其保护级别而不可访问

我想,这一定很简单,但我对编程完全陌生。

共有1个答案

阎志义
2023-03-14

第一个快速而不明智选择是将该对象公开:

public GMapOverlay polylineOverlay = new GMapOverlay("polylines");

但这不是一个好的实践,因为这样做会破坏封装原则,并失去对对象发生什么的控制。如果该变量在某个点上有垃圾,您将很难知道为什么会发生这种情况。

另一种方法是创建一个 getter,这样就可以公开访问引用,尽管没有修改。

private GMapOverlay polylineOverlay = new GMapOverlay("polylines");
public GMapOverlay PolylineOverlay
{
    get
    {
        return this.polylineOverlay;
    }
}

包含类可以访问两者,但其他类只能访问公共属性。

此外,如果您不想在首次使用之前创建此对象,可以这样做:

private GMapOverlay polylineOverlay;
public GMapOverlay PolylineOverlay
{
    get
    {
        if (this.polylineOverlay == null)
             this.polylineOverlay = new GMapOverlay("polylines")
        return this.polylineOverlay;
    }
}

尽管在这种情况下,你应该在你的类中使用公共属性,或者在其他地方实例化它。

 类似资料:
  • 问题内容: 我正在尝试开发在线酒店预订系统。我有一个主类,它从用户那里获取输入信息,例如他们的姓名,他们的付款信息和其他数据字段,并使用该信息作为对象。我有另一个名为的类,其中包含每个对象的列表。我遇到的问题是我无法找出一种将对象添加到对象列表中的方法。这是一些代码: 我不知道如何获取新对象作为类中方法的参数传递。我只是束手无策,希望有人能帮助我慢跑。 谢谢你的帮助。 问题答案: 让makeRes

  • 使用Inspect.exe我可以看到应用程序组件的树结构中存在一个按钮,但我找不到获取该按钮句柄的方法。这是控件的Inspect.exe输出: 这个按钮的特殊之处在于它没有hwnd值。(hwnd: 0x0)。这是我试图获得对该按钮的引用的内容: 在本例中,hwnd变量是包含按钮的应用程序主窗口的句柄。 在阅读FindWindowEx的留档时,看起来似乎有多种方法可以使用不同的参数,我觉得我已经尝试

  • 这是我的代码: 我所要做的就是使esc按钮与backspace按钮完全相同。所以我想删除

  • 所以假设我有一个“开”和一个“关”按钮。当我按下打开按钮时,我希望打开按钮隐藏自己,关闭按钮显示出来,反之亦然。 一个人怎么能这么做?

  • 本文向大家介绍javafx 创建一个按钮,包括了javafx 创建一个按钮的使用技巧和注意事项,需要的朋友参考一下 示例 创建aButton很简单: 这将创建一个新的Button,内部没有任何文本或图形。 如果要Button使用文本创建一个,只需使用带有Stringas参数的构造函数(用于设置textProperty的Button): 如果您想创建一个Button内部带有图形或其他图形的Node,