Я создаю простое приложение, работающее с картами на c#, используя для него элемент управления GMap.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);
}
Результат:
«GoogleMaps.MapModule.polylineOverlay» недоступен из-за его уровня защиты
Я думаю, это должно быть очень просто, но я совершенно новичок в программировании.
.
polylineOverlay
не является свойствомpublic
. Вы должны объявить его какpublic GMapOverlay polylineOverlay
для быстрого и грязного исправления, но это неправильный способ справиться с этим (вы обходите инкапсуляцию). Например, вы можете создать геттер для этого объекта. - person Andrew   schedule 27.06.2016public
. Тогда я бы предложил вам немного изучить C#, потому что Stack Overflow предназначен не для того, чтобы дать курс программирования, а для того, чтобы ответить на конкретные вопросы. В любом случае, вы можете найти некоторую информацию о геттерах и сеттерах здесь: сеть">stackoverflow.com/questions/17881091/ - person Andrew   schedule 27.06.2016