Состояние docs :
Получает значение, указывающее, отображается ли эта форма модально.
Ключевое слово здесь это .
Давайте посмотрим на ваш код:
Form2 f2 = new Form2();
bool isModal = f2.Modal;
f2.ShowDialog();
Вопрос, который вам нужно задать: «во второй строке, это форма в то время показывается модально? "
Ответ ясно Нет , поскольку он отображается только модально в строке третьей . Если вы думаете логически, это имеет смысл.Форма не знает , будете ли вы звонить Show
или ShowDialog
- поэтому Modal
не может рассказать вам о будущем - она может только рассказать вам о текущем положении дел.
Таким образом, во второй строке Modal
должен (в соответствии с документами) вернуть false
.
ОК, так почему это так?
private void button1_Click(object sender, EventArgs e)
{
bool isModal = this.Modal;
}
Итак, основываясь на документах, мы должны спросить себя, отображается ли this
в данный момент модально при нажатии кнопки.Да в то время это так, поэтому должно (согласно документации) вернуть true
.