Yep, change the locks, you dropped yours when out, didn't want to take the risk so changed them. You'll sort her out with one at some point, be vague, but don't get round to it.
also it might be worth your DH arranging times to see her, so she knows she will get to see you, eg inviting her to dinner on certain nights, then you all know she's coming and she doesn't have to 'guess' when a good time is. Plus if she comes over outside of that and it's a bad time, start saying things like "oh, MIL, I was about to serve dinner, it's not a good time, shall I get DH to pop over to see you when we've finished?"
I'd say to change the lock and refuse to give her a key but it sounds to me like you would cave and give her one at the first dirty look. You are either going to have to have an awkward conversation or suck it up. You could start by treating all arrivals at meal time with an abrupt politeness that makes it clear you are waiting for her to leave so you can all leave?
It was after asking for the key back and being told they didn't have it anymore! Then DFiL let himself in to do some DIY (that I had said I was going to do, so please don't!) at the time I was home in bed, feeling very ill. I heard someone coming in, grabbed a vase, and nearly brained him as he came up the stairs. We changed the locks shortly after.
I think you can either have a quiet word, ask her to stop dropping in, Ask for the key back, or just change the locks.
hi, I'm a mum to a 16 year old and my mother in law lives 6 doors away from us. The trouble is she brings it upon herself to make all our family business her business. She still treats my son like a 5 year old. She has got a key to our house and comes in whenever she pleases at the most inappropriate times eg when having dinner or when my husband has come in from work. I want to ask her for it back but don't know how to as I have one to hers but always knock , never just go in. I love her to bits but this constant interfering is doing all our heads in.. do any other mums have this same problem ?