Tengo dos datagridviews, y cuando hago clic en uno de ellos, me gustaría anular la selección de todos los de la selección en la segunda datagridview, he probado este, pero nada funciona:

firstItemsDataGridView.ClearSelection();
firstItemsDataGridView.CurrentCell = null;

no funciona,

firstItemsDataGridView.ClearSelection();
if (firstItemsDataGridView.Rows.Count > 0)
    firstItemsDataGridView[1, 0].Selected = true;
firstItemsDataGridView.CurrentCell = null;
firstItemsDataGridView.ClearSelection();
foreach (DataGridViewRow item in firstItemsDataGridView.Rows) {
    item.Selected = false;

    foreach (DataGridViewCell itemCell in firstItemsDataGridView.Columns) {
        itemCell.Selected = false;
    }
}

no funciona,

firstItemsDataGridView.Rows[0,-1].Selected = true;

no trabajar demasiado.

He puesto a seleccionar el modo de selección de una fila completa, y no tengo idea de como lograr mi objetivo.
muchas gracias!

  • es firstItemsDataGridView la cuadrícula deseada ? Se que la asignación de un origen de datos de nuevo ?
  • firstItemsDataGridView grid donde tengo que anular la selección de todos los elementos, no estoy usando ningún orígenes de datos(enlace)
  • Configuración de CurrentCell=null debe hacer el truco, pero entonces ¿cómo es que los datos que se muestran en la tabla provista/añadido ?
InformationsquelleAutor Martin Ch | 2011-09-06

9 Comentarios

  1. 53
    dataGridView1.ClearSelection();

    Debería funcionar. Tal vez usted tiene el código que se auto selecciona las filas que se activa?

    • No es demasiado pronto!
  2. 4

    Ya que no hay respuesta, y he utilizado esta respuesta en otros posts y me encontré con el mismo número de la primera fila se selecciona y deselecciona no era posible:

    Color blue  = ColorTranslator.FromHtml("#CCFFFF");
    Color red = ColorTranslator.FromHtml("#FFCCFF");
    Color letters = Color.Black;
    
    foreach (DataGridViewRow r in datagridIncome.Rows)
    {
        if (r.Cells[5].Value.ToString().Contains("1")) { 
            r.DefaultCellStyle.BackColor = blue;
            r.DefaultCellStyle.SelectionBackColor = blue;
            r.DefaultCellStyle.SelectionForeColor = letters;
        }
        else { 
            r.DefaultCellStyle.BackColor = red;
            r.DefaultCellStyle.SelectionBackColor = red;
            r.DefaultCellStyle.SelectionForeColor = letters;
        }
    }

    Este es un pequeño truco, la única manera que usted puede ver una fila seleccionada, es por la primera columna (columna no[0], pero el por lo tanto). Cuando usted haga clic en otra fila, usted no va a ver a la selección azul ya, sólo la flecha indica que la fila seleccionada.

    SOLUCIÓN:

    me enteré de por qué mi primera fila fue seleccionado por omisión y encontró la forma de que no se seleccione por defecto.

    Por defecto mi datagridview fue el objeto con la primera pestaña-parada en mi formulario de windows. Hacer la ficha de una primera parada en otro objeto (tal vez la desactivación de tabulación para el control datagrid en todo funcionará a) movilidad de seleccionar la primera fila

    • dataGridView1.ClearSelection();
  3. 3

    Una respuesta en NullSkull resuelto el problema para mí era que la celda de la fila 0, columna 0 para el control datagridview siempre fue seleccionado en el formulario de carga, y no podía anular la selección a pesar de llamar ClearSelection dentro de la forma del método constructor. Yo sólo tenía que llamar a ClearSelection en el evento Form_Load.
    http://www.nullskull.com/q/10066166/how-to-deselect-the-first-row-when-the-form-i-loaded-in-datagridview-in-windows-application.aspx

  4. 0

    Asegúrese de que todas las filas de la selección (dataGridView.Filas[…].Seleccionado = false)

    Fila cero por defecto seleccionado, a fin de establecer dataGridView.Rows[0].Seleccionado = false cuando se abre el DataGridView y tan largo como el resto de las opciones se establecen de modo que el usuario no puede seleccionar, entonces usted va a tener, y mantener, nada seleccionado.

  5. 0
    //no selection in dgv at the begening   
    dgv.FirstDisplayedCell = null;
    dgv.ClearSelection();
    //try this it is working !
  6. 0

    Si el uso de WPF y desea mantener un patrón de diseño MVVM puede enlazar ambos elementos seleccionados para la misma propiedad por lo que al seleccionar uno de los otros automáticamente se anula la selección.

    intentar algo como esto

    public class SingletonClass
    {
        private static SingletonClass _Instance;
        public static SingletonClass Instance
        {
            get
            {
                if (_Instance == null)
                    _Instance = new SingletonClass();
                return _Instance;
            }
        }   //End Property Instance
    
        private object _SelectedItem;
        public object SelectedItem
        {
            get { return _SelectedItem; }
            set { _SelectedItem = value; }
        } //End Selected Item
     }
    
    <DataGrid Name="Datagrid1" SelectedItem="{Binding Source={x:Static Const:SingletonClass.Instance},Path=SelectedItem,IsAsync=True}">
    
    <DataGrid Name="Datagrid2" SelectedItem="{Binding Source={x:Static Const:SingletonClass.Instance},Path=SelectedItem,IsAsync=True}">

    *Yo sólo se utiliza una clase singleton debido a que este trabajo a través de los diferentes puntos de vista en los diferentes casos, se puede utilizar una clase regular si su en el mismo punto de vista.

    Tenga en cuenta la IsAsync=True en el xmal, si usted planea usar una clase singleton a través de diferentes puntos de vista que no funcionará sin él.

  7. -1

    Como dijo @Taw en subcomments a respuesta – «no es demasiado pronto!».

    En mi caso el comportamiento predeterminado no funciona en absoluto. Mi caso – datagrid en la ficha de control tabControl y no funciona si la ficha no se muestra antes!

    Que el hack funciona como un encanto :

    AnyTabControl.SelectedTab = FirsTab;
    gridModules.ClearSelection(); //placed at first tab
    AnyTabControl.SelectedTab = SecondTab; //that tab i would like to show first

    Como resultado : segunda pestaña muestra al usuario, y cuando se hace clic en la primera selección no aparecerá.

Dejar respuesta

Please enter your comment!
Please enter your name here