Last night, DD (23 months) was playing up a little bit, and at one point, when she had finished a bottle of milk, she deliberately through the bottle on to the floor, in quite a petulant way. I told her to pick it up and she refused and ran away.
I decided that as she was being deliberately naughty (for not doing what I told her rather than initially throwing it IYSWIM) that I would make a stand. I told her several times to come back and get it, she didn't. I then told her that I was going to count to 5, and if she still hadn't picked it up, that I would take away one of her toys (a playset thing) for the rest of the day. She still didn't, so I followed through and took it away. She got upset, and hit me, so I told her off for that too. After a minute or two of being upset, she said sorry for hitting me, then picked the bottle up.
She didn't ask for the toy back all evening, or today (I had put it on the dining table, where she could see it, but not reach it). Just now, after lunch, I asked her if she wanted to play with it, and got it down. She looked sad and said 'naughty girl' and then shook her head and said 'bottle up' (she tends to shake her head for negatives rather than saying it IYSWIM). She has also said this again since, and has also looked sternly at a couple of her toys and said 'bottle up'.
Was I too harsh? In one way it is good that she has obviously learned the lesson, but I am feeling really bad that it seems to be upsetting her still.