Correct way of doing this can be
$buttons=[system.windows.forms.messageboxbuttons]::yesno;
[system.windows.forms.messagebox]::Show("Are you sure?","",$buttons);
Notice "::" instead of "." in the first line. YesNo value is defined staticly on System.Windows.Forms.Messageboxbuttons, so you must use "::" (static call) instead of "."
Note that "[system.windows.forms.messageboxbuttons].yesno" is an attempt to call a "YesNo" property on an instance of System.Type, which does not exist and therefore result in a $null
Hope it helps !
Cédric
Edit ---
Keith solution using an implicit cast made by powershell for the enum is more elegant.
It just does not work on PS V2 CTP 3 which I still use but work fine on RTM version.
The complete explication was worth giving, though...