2013-11-28 4 views
0

У меня есть обработчик для панелей C#. Событие VisibleChanged. Но как определить, установлена ​​ли видимость на true или false?Обнаружить, если VisibleChanged является истинным или ложным

public void Parent_VisibleChanged(object sender, System.EventArgs e) 
    { 
     if(Visible = true) 
     { 
     // do what i want to do 
     } 

    } 
+1

Попробуйте проверить равенство с '==', а не с '=' –

+0

Нет необходимости для сравнения логического значения вообще. Кроме того, это неправильное свойство 'Visible'. – JeffRSon

ответ

3

Вы должны использовать == и не =

if(Visible == true) 
+0

Извинения Я имел в виду, что обработчик предназначен для текущего контроля родительского контейнера. Я сделал, если (это.Parent.Visible == true), и это сработало. –

+0

Это '== true' является излишним. – JeffRSon

1

Вы должны сделать что-то вроде этого внутри события:

if (((Panel)sender).Visible) 
    MessageBox.Show("Visible."); 
else 
    MessageBox.Show("Not Visible."); 
1

Вот два способа:

private void panel1_VisibleChanged(object sender, EventArgs e) 
{ 
    // use sending object 
    Panel panel = sender as Panel; 

    if (panel.Visible == false) 
     ; 

    // alternate use name of object 
    if (panel1.Visible == false) 
     ; 
} 
+1

Сравнение bool довольно бесполезно. Вы бы не писали 'if ((i == 8) == false)', не так ли? – JeffRSon

+0

«Сравнение bool довольно бесполезно». Я считаю, что это утверждение бессмысленно. Что касается личного стиля, мне легче читать, как я это делал. Если вы хотите иметь длительные утомительные дискуссии о стиле, это не подходящее место. –

+0

Что может быть проще или проще, чем 'if (! Panel.Visible)', т. Е. "If not Visible"? Но, извините, не знал, что это ваш стиль. Я знаю только это как ошибку новичка. Не хочу обсуждать стиль ... – JeffRSon

2

Вы можете AYS относится к переменному экземпляру:

private bool WasVisible = true; 

public void Parent_VisibleChanged(object sender, System.EventArgs e) 
{ 
    if(WasVisible) 
    { 
    // do what i want to do 
    } 
    WasVisible = Visible; 
} 
Смежные вопросы