2016-04-06 8 views
0

Je développe une application de périphérique intelligent sur un périphérique intelligent Windows 6 afin que DataGridView ne soit pas disponible. Je veux obtenir des valeurs de cellules de lignes sélectionnées et masquer certaines colonnes. Est-ce possible dans DataGrid?Comment puis-je obtenir les valeurs de ligne sélectionnées d'un DataGrid en C# et Masquer une colonne de DataGrid?

+0

Veuillez poster un peu de code sur ce que vous avez déjà essayé. – Harry

Répondre

0

Pour une seule cellule, vous pouvez utiliser:

var cellInfo = dataGrid.SelectedCells[0]; 

Ce retourne un objet DataGridCellInfo contenant les informations de la cellule sélectionnée.

Pour masquer des colonnes, vous devez définir leur propriété Visibility sur Visibility.Collapsed.

dataGrid.Columns[index].Visibility = Visibility.Collapsed; 

Espérons que cela aide!

Mais la prochaine fois fournissez du code s'il vous plaît.

+0

D'abord vos deux codes ne fonctionnent pas car je ne trouve pas les propriétés comme dataGrid.SelectedCells et datagrid .Columns –

+0

Strange. Les deux codes fonctionnent pour moi. Êtes-vous sûr d'utiliser un objet DataGrid? – SLNC

0

Vous pouvez simplement obtenir toutes les valeurs de votre DataGrid avec ce code, écrit dans le fichier xaml.cs de votre fenêtre sélectionnée: si vous voulez toujours sélectionner toute la ligne,

var selectedItems = this.dataGrid1.SelectedItems; 

En outre, vous devez changer la propriété de votre dataGrid:

this.dataGrid1.SelectionUnit = DataGridSelectionUnit.FullRow; 

Et pour cacher les colonnes que vous devez modifier la propriété de visibilité de la colonne à Collapsed:

this.dataGrid1.Columns[0].Visibility = Visibility.Collapsed; 
0

Vous pouvez utiliser l'événement CellClick de DataGridView suivant pour sélectionner une ligne dans votre grille de données et afficher les valeurs des colonnes dans les zones de texte spécifiées.

private void dgvUserList_CellClick(object sender, DataGridViewCellEventArgs e) 
    { 
     if (e.RowIndex!=-1) 
     { 
      id = Convert.ToInt32(dgvUserList.Rows[e.RowIndex].Cells["ID"].Value.ToString()); 

      SqlConnection _sqlconnection = new SqlConnection(Database.ConnectionString); 

      if (_sqlconnection.State == ConnectionState.Closed || _sqlconnection.State == ConnectionState.Broken) 
      { 
       _sqlconnection.Close(); 
       _sqlconnection.Open(); 
      } 

      SqlCommand _sqlcommand = new SqlCommand("SELECT * FROM Users WHERE ID='" + id + "'"); 

      _sqlcommand.Connection = _sqlconnection; 
      _sqlcommand.CommandType = CommandType.Text; 

      SqlDataAdapter _sqldataadapter = new SqlDataAdapter(_sqlcommand); 

      DataTable _datatable = new DataTable(); 

      _sqldataadapter.Fill(_datatable); 

      foreach (DataRow _datarow in _datatable.Rows) 
      { 
       txtUsername.Text = _datarow["Username"].ToString(); 
       txtPassword.Text = _datarow["Password"].ToString(); 
      } 
     } 
    } 
+0

Je n'utilise pas "DataGridVIew" Je ne peux utiliser DataGrid .. Eh bien j'ai trouvé la solution de l'un de mes problèmes .. datagrid [datagrid.CurrentRowIndex, columnindex] .ToString(); –

+0

Merci pour le partage! –