To gain weight, eat more. It really is that simple.
If you live with your parents get your mum to cook some good food for you and eat whenever you can. Eat till you are full.
I know that oats are huge favourite on this forum, but sorry guys, it doesnt work well for hard-gainers who have small stomachs and active lifestyles.
Oats are something I eat when shedding body fat, NOT when gaining.
Oats when mixed with fluid, will expand in your gut and give you a "full" feeling. You will often see this fact used to market porridge (feel fuller for longer). The marketing men push porridge as a way to reduce weight (NOT gain weight).
Here's a typical article about
oats.
When you are gaining weight, oats are about the last thing I'd eat, especially if you are hard gainer. Soup is another food which has proven to be great when shedding body-fat, ie. it fills your gut without adding too many calories - soup is great when shedding bodyfat, but useless for gaining weight.
I'd focus on eating food rich in fat.
My fave weight/strength building food is toast, then butter, then tuna in mayo. Each slice of this has about 250 calories on it. Have 2 of those every day and you've got an additional 500 calories/day to your normal diet.
Try eating foods you enjoy and like the taste of. If you like the taste you will eat more of it. If you hate the taste, then you will eat less (and not gain weight). Use protein shakes to supplement your normal diet and you will definitely add weight.