У меня есть форма, использующая множество элементов управления. Некоторая логика этих элементов управления находится в других классах.Объекты формы доступа из частичного класса
Другие элементы логики так непосредственно привязаны к объектам формы (боксы, метки, кнопки и т. Д.), Что имеет смысл сохранить их в файле designer.cs формы. Объем кода становится слишком большим для меня в файле designer.cs, поэтому я хочу разбить этот код на частичный класс. Я также хочу, чтобы частичный класс имел неограниченный доступ к любому объекту в форме.
К сожалению, я не могу получить доступ к элементам управления формы. Во-первых, вот что я имею в месте моего теста (с помощью создания вне коробки нового проекта в Visual Studio 2015):
Form1.cs
namespace Project1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
Form1.Designer.cs
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// lots of other code generated by Visual Studio...
... Позже в Form1.Designer.cs
private System.Windows.Forms.Label label1;
И здесь возникает проблема в моих пользовательских частичных файлов класса называемый Form1.MoreCode.cs
namespace Project1
{
partial class Form1
{
label1. //nope!
}
}
Как вы можете видеть, я сделал попытку доступа к объекту формы с именем «label1» в файле designer.cs, но не мог. Я пытался сделать сам ярлык общественности, то я пытался сделать все классы общественности, как это:
public partial class form1
... И как это:
private System.Windows.Forms.Label label1;
Я сделал много исследований с небольшой помощью. Кто-то еще из Stack Overflow предлагает мой подход работать, но если я не пропустил что-то важное, это не так.
Также в моих исследованиях некоторые люди предлагают создать свойства объектов. Я действительно не хочу этого делать, потому что я просто хочу иметь обычный нормальный доступ к объектам, не выполняя все эти дополнительные шаги (может победить цель расщепления кода в первую очередь).
Не могли бы вы рассказать мне, возможно ли то, что я пытаюсь сделать? Если да, то какой подход я должен предпринять, чтобы сделать эту работу должным образом?
Спасибо.
в конструкторе .. изменить уровень доступа метки из 'частного к public' – MethodMan
или даже просто' protected' должны делать – monty
Вы пытаетесь написать код непосредственно в класс? Не в функции? – Blorgbeard