Что вы подразумеваете под "отладчик показывает, что он останавливается"? Возможно ли, что myform
равно нулю, или myform.treeView1
равно нулю?
Я не могу вспомнить точный порядок оценки в этом случае, но он мог бы объяснить симптомы, которые вы описываете. Зная, почему отладчик «останавливается», очень важно. Другая возможность состоит в том, что вы пытаетесь получить доступ к пользовательскому интерфейсу из потока, не являющегося пользовательским интерфейсом, что помешает правильной работе назначения для Enabled
.
О, и, пожалуйста, не используйте свою вторую версию - назначение в качестве побочного эффекта очень, очень редко хорошая идея. Единственное идиоматическое использование, которое я знаю, - это циклы с IO:
string line;
while ( (line = reader.ReadLine()) != null)
и я считаю это приемлемым только потому, что оно достаточно распространено. В этом случае это выглядит так, что вы могли бы означать "==" вместо "=".