Checking for a win along the top row of a Tic Tac Toe board
You're checking if each section of your board is enabled as part of your check, this check makes your test look more complicated than it needs to be.  Part of this is because your board is tightly integrated into its graphic representation.  Generally speaking you want to try to avoid this, it makes both layers easier to change.

Rather than having a signature of Connected() consider writing something more like this (pseudo code):

bool CheckWin(string currentPlayer) {
    foreach row in rows
        return true if CheckWinningRow(row, currentPlayer)
    // Check Columns
    // Check Diagonals
}

bool CheckWinningRow(int row, string currentPlayer) {
    return true if (board[row*3] == currentPlayer &amp;&amp;
                    board[row*3+1] == currentPlayer &amp;&amp;
                    board[row*3+2] == currentPlayer);
}


Checking each row is going to be the same action, it's just going to be a different starting location in your array.

You only need to check if the last player (currentPlayer, either X or O) has won.  If you work by checking the current player, you don't need to know if the button is enabled (has already been played) it's not going to have the current player's value in it if it hasn't been played on yet.