EDIT: The following applies only if you are making a bejewled-type game based off a grid.
You really should be representing your whole grid with an array. All changes you make should be to the array, then you can read to determine block positions.
This way you will have a LOT less trouble, and you won't have to do events as complex as this.
Now there are many things you can do to determine rows, as well as more complex features for your game!
I am not sure of the algorithms for finding a row, however. I would ask Yann as he seems to be the array master here, having created a 3D maze game based off arrays ;)