You only handle one value with what you have here. Think about it - how many i's can you have with what you have below? How many j's?
I understand you think since i,j would be different for each row,column that you have it covered but you only have one of each specified. In addition, you don't have anything like a foreach or any other statement that will iterate through more than the first one. How does the program know that you have more than one and to grab them as well?
Maybe you have more code that you didn't post?
Dim i = e.RowIndex
Dim j = e.ColumnIndex
txtefid.Text = dgfacenq.Item(i, j).Value
/// You did realize that this was the same thing repeated right after the first just in a different look right?
Dim i = e.RowIndex Dim j = e.ColumnIndex txtefid.Text = dgfacenq.Item(i, j).Value
In effect if you have this code this way in your program you've just done this
Dim i = e.RowIndex
Dim j = e.ColumnIndex
txtefid.Text = dgfacenq.Item(i, j).Value
Dim i = e.RowIndex
Dim j = e.ColumnIndex
txtefid.Text = dgfacenq.Item(i, j).Value