2014-09-16 2 views
0

Form.WindowState использует перечисление FormWindowState, чтобы установить значение «minimized», «maximized», «normal». При закрытии формы я переводил эти состояния в целое и экспортировал их. Однако я не могу назначить их на перегрузочные форму с помощьюНазначить FormWindowState с опцией Strict On

Me.WindowState = CInt(getMySetting()) 

, потому что я использую

Option Strict On 

, который не разрешает это неявное преобразование из INT в FormWindowState. FormWindowState не имеет конструкторов, которые я могу использовать, поэтому я не знаю, как создать соответствующий FormWindowState с помощью соответствующего Integer. Есть ли у вас какие-либо предложения, кроме поворота опции Strict? Спасибо!

ответ

0

Это должно работать:

Me.WindowState = CType(CInt(getMySetting()), FormWindowState) 

Вы должны забрасывать Integer к FormWindowState (предполагая, что это действительное значение)

Но более надежный/читаемым способом было бы использовать FowmWindowState -enum в настройках напрямую. Вы можете сделать это. Вы просто должны найти его в правильное пространство имен (см рисунок ниже):

enter image description here

Теперь это строго типизированный код работает:

Me.WindowState = My.Settings.DefWindowState 
+0

Спасибо, преобразуя с CType работает! Я не совсем уверен, что вы имеете в виду с вашим предложением: Поскольку я не знаю, какой WindowState я буду устанавливать (я получаю состояние из внешнего файла), я не могу указать его в настройках, правильно? –

+0

@ HW: тогда вы можете игнорировать вторую часть. Я думал, что вы читаете его из ['My.Settings'] (http://msdn.microsoft.com/en-us/library/saa62613.aspx). –

Смежные вопросы