You might need to explicitly 'box' the int. I'm not sure if VC++ boxes and unboxes stuff automagically, whereas C# does (which has good and bad sides). Try casting it to System::Object first, like so:
this->HoursListBox->Items->Add((System::Object)hours);
@Arevos: If managed C++ is like C#, the int type is probably an alias for System.Int32, so the changed definition would be unnecessary in that case (and fail to resolve the problem). Still, I suppose it's worth a shot, as I don't know if managed C++ behaves this way (never used it; if I'm gonna write managed code, I'll stick to C#, using C++ for native code).