¿Cómo obtener el valor de una celda de una fila seleccionada en un DataGridView de Windows Form? C# .Net

Para obtener el valor de una celda de una fila seleccionada a continuación te muestro una función que te regresara el valor como cadena, ese valor tu puedes parsearlo a el tipo de dato que necesites ya sea un entero, decimal etc.

La función recibe tu DataGridView como parámetro y el número de la posición de la celda deseada.

Recuerda que las celdas del DatGridView comienzan con el número 0, ya que se manejan igual que un arreglo.


public class DataGridViewUtils
{
 public static string GetValorCelda(DataGridView dgv, int num)
        {
            string valor = "";

            valor = dgv.Rows[dgv.CurrentRow.Index].Cells[num].Value.ToString();

            return valor;
        }
}

Para utilizar la función sería de la siguiente manera:


//Mandamos nuestro DataGridView y la posición deseada
string valor= DataGridViewUtils.GetValorCelda(dgv,0);

¿Cómo quitar la función de ordenamiento en un DataGridView de Windows Form? C# .Net

Para eliminar la funcionalidad de ordenamiento en un DataGridView, a continuación te muestro cómo es posible lograrlo:


 //creamos un datagridview para el ejemplo, pero en tu caso es el DataGridView que ya creaste en tu formulario, el cual ya tiene columnas.
 DataGridView dgv= new DataGridView();

 //recorremos todas sus columnas
 foreach (DataGridViewColumn Col in dgv.Columns)
 {
     Col.SortMode = DataGridViewColumnSortMode.NotSortable;
 }

¿Cómo centrar un control en Windows form C# .Net?

Para centrar un control cualquiera (Textbox, ComboBox, DataGridView ETC) que se encuentra en otro control por ejemplo un panel o un form, vamos a recurrir a un poco de matemáticas.

A continuación muestro con una función como es posible centrar un control respecto a su padre.


 public class ControlUtils
    {
        public static void centraX(Control padre, Control hijo)
        {
            int x = 0;

            //un poco de matematicas, restando los anchos y dividiendo entre 2
            x = (padre.Width/2)-(hijo.Width/2);

            //asignamos la nueva ubicación
            hijo.Location = new System.Drawing.Point(x,hijo.Location.Y);
        }
    }

Recuerda que todos los controles de Windows form heredan de la clase Control.

Para utilizarla sería de la siguiente manera:


//Suponiendo que es un textbox que se encuentra en un panel
ControlUtils.centraX(txtTextBox,panelContenedor);