Я бы настоятельно рекомендовал выставить свойство Checked
через определенное свойство в Form1 (возможно, с более значимым именем). Это поможет скрыть детали реализации (т. Е. Управляющую структуру) Form1 от вызывающей стороны и вместо этого выставить только логику, которая требуется другим пользователям для выполнения своей работы
Например:
public bool IsNumberRequested
{
get { return chk_num.Checked; }
}
Или же, если вы все еще действительно хотите получить доступ к элементу управления напрямую, в конструкторе вы можете выбрать элемент управления и изменить его свойство Modifier
на public (или что-то еще), что позволит вам получить доступ к объекту элемента управления с помощью кода, который вы Первоначально написано выше.
РЕДАКТИРОВАТЬ: (Ответ на основе комментария)
Public.cs по-прежнему будет нуждаться в ссылке на Form1, а затем вызовет свойство IsNumberRequested
этого объекта.
// Public.cs
public class Public
{
private Form1 _ui;
public Public(Form1 ui) { _ui = ui };
public string MyFunction(int num_val)
{
if (_ui.IsNumberRequested)
{
// Stuff
}
// Else, default Stuff
}
}
В качестве альтернативы, вы также можете передать форму в качестве параметра MyFunction
, а не использовать ее в качестве переменной экземпляра.