Я создаю простое приложение, работающее с картами на C#, используя для этого GMap.NET. Итак, мой вопрос: я хочу сделать полигоны, полилинии и маркеры в одной форме, используя другую. Мой код, относящиеся к нему:Как сделать так, чтобы нажатием кнопки в одной форме был создан объект и передан другому?
Первая форма (MapModule):
GMapOverlay polygonOverlay = new GMapOverlay("polygons");
GMapOverlay markersOverlay = new GMapOverlay("markers");
GMapOverlay polylineOverlay = new GMapOverlay("polylines");
Вторая форма (NewFile):
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);
}
Выход:
«GoogleMaps. MapModule.polylineOverlay 'недоступен из-за его уровня защиты
Я думаю, это должно быть очень просто, но я совершенно новый в программировании.
.
Что-то сломанное в моем браузере, я не могу использовать разметку. Спасибо, tarzanbappa! –
Это потому, что 'polylineOverlay' не является собственностью' public'. Вы должны объявить его как «public GMapOverlay polylineOverlay» для быстрого и грязного исправления, но это не правильный способ его обработки (вы обходите инкапсуляцию). Например, вы можете создать геттер для этого объекта. – Andrew
Я ПОЛНОСТЬЮ новый, я пытаюсь программировать на C# в течение недели. Я не знаю, что такое «getter для объекта» :(Можете ли вы объяснить мне, как я могу сделать это для моего примера, чтобы получить возможность понять это? Я хочу понять общий принцип этого. –