Hypothetically, if InventoryForm was also used to display other entity's inventory, such as a shop keeper or someone you're pick pocketing, you could pass a reference to the person whose inventory you're going to be displaying to the form and have it sort it out.

Currently working on an open world survival RPG - For info check out my Development blog:ByteWrangler

(The inventory item's are variables in the player class - for simplicity sake)

The InventoryForm has to see the player's inventory, not the player. I would have an inventory class, that the player has as part of it. Then when you create the InventoryForm you use the Form constructor to pass the player's inventory. InventoryForm inform = new InventoryForm(player.Inventory);

So why do this? Because then you can have other things with inventories. Merchants, monsters, chests, doesn't matter. They could all be handled by a single InventoryForm.