У меня есть форма mainform и владельца cameraViewVS (child). У меня есть CheckBox во второй форме, и я хочу, когда я проверить или снимите флажок я получить его значение в первой форме, я использовал ИмениСвойство как это в MainFormПолучить значение CheckBox из дочерней формы
public bool propertyZoomCam
{
get { return f1.checkBoxZoomCam.Checked; }
}
Я называю это свойство в f1, когда я показывать экземпляр только f2.
public void timer()
{
for (int l = 0; l < 2; l++)
{
cameraInstance[l].Start();
if (cameraInstance[l].MoveDetection == true)
{
foreach (Form S in Application.OpenForms)
{
var frm = S as Formes.CameraViewVS;
if (frm != null && frm.Addresse == cameraInstance[l].adresse) {
// Match, activate it
cameraInstance[l].MoveDetection = false;
frm.WindowState = FormWindowState.Normal;
frm.Activate();
return;
}
}
// No match found, create a new one
var f1 = new Formes.CameraViewVS(cameraInstance[l], adresseIPArray[l]);
f1.Show(this);
if(propertyZoomCam)
zoom = 15;
}
}
}
я получить только первое ложное значение, так как его значение в начале неверно, и когда я изменяю чек или снимите я не извлечь его значение.
Любая помощь?
Если флажок установлен в f2, то почему свойство читает 'f1.checkBoxZoomCam.Checked'? Есть ли у f1 флажок с тем же именем? CameraVireVS * выглядит * как дочерняя форма, но вы вызываете ее f1. – LarsTech
нет, «f1» в коде является только экземпляром второй формы Formes.CameraViewVS, и флажок находится в этой форме, чтобы получить его значение в основной форме. – Ostorlabi
Похоже, что CameraViewVS должен поднять событие, в котором был установлен флажок, и прослушать его основную форму и установить значение «Zoom».Ваш опубликованный код никогда не достигает 'If (propertyZoomCam)', если форма найдена в коллекции. – LarsTech