10
votes

Je veux générer programmablement un clic sur une ligne DataGridView en C #

J'ai un datagridview dans un formulaire et je veux cliquer sur programmation de sa première ligne. J'ai trouvé le code pour sélectionner ses lignes ou ses colonnes à partir du code.

pour par exemple, par exemple, xxx

Cependant, ce code ne soumet pas l'événement clic sur le DataGridView. Si quelqu'un a codé comment cliquer sur une DataGridView à partir du code, veuillez étendre votre aide type.


2 commentaires

Je suis sûr que je ne comprends pas votre question correctement ... mais je vais toujours demander - pourquoi pas seulement appeler votre méthode de gestionnaire d'événements de clic?


Merci gars, ce code fonctionne comme charme.


5 Réponses :


12
votes

Appelez simplement la méthode du gestionnaire d'événements, par exemple:

datagridviewRowClickedEventHandler(new object(), new eventargs());


0 commentaires

1
votes

On dirait que vous avez la première moitié, réglant les flux de propéreurs sélectionnés à vrai. Maintenant, vous pouvez appeler programme de manière programmative la ligne Cliquez sur le gestionnaire et il devrait procéder comme si vous aviez cliqué dans l'interface graphique.


0 commentaires

11
votes

Insérez le code Follwing dans votre projet, le cas échéant (généralement sur le formulaire qui a la DataGridView).
Assurez-vous de modifier le nom de la DataGridView à partir de DataGridView1 fort> à l'autre sur votre formulaire.

private void Form1_Load(object sender, EventArgs e)
{
    //call the cell click event with the first cell as the parameters.
    dataGridView1_CellClick(dataGridView1, new DataGridViewCellEventArgs(0, 0));
}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    //put your code for handling cell click here
}


0 commentaires

0
votes
dataGridView.CurrentCell = dataGridView[<column>, <row>];

0 commentaires

0
votes

Je suppose que vous voulez appliquer datasource code> et sélectionnez la première ligne? Droite?

La meilleure façon de le faire comme ça p> xxx pré>

et voici le code pour simuler Cliquez sur la ligne. P>

   private async void DgvAreas_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
        {
            try
            {
                // For any other operation except, StateChanged, do nothing
                if (e.StateChanged != DataGridViewElementStates.Selected) return;

                //Get GeoData
                if (sender is MetroFramework.Controls.MetroGrid)
                {
                    if ((sender as MetroFramework.Controls.MetroGrid).SelectedRows.Count > 0)
                    {
                        dgvGeoData.DataSource = null;
                        metroProgressSpinnerMain.Visible = true;
                        panelFilter.Enabled = false;

                        var selectedRow = (sender as MetroFramework.Controls.MetroGrid).SelectedRows[0];
                        var areaItem = (AreaItem)selectedRow.DataBoundItem;
                        var geoData = await UpdateWDataPositionItems(areaItem.MachineID, areaItem.TimeStart, areaItem.TimeEnd.Value);

                        if (geoData.Any())
                        {
                            BeginInvoke((Action)(() =>
                            {
                                dgvGeoData.DataSource = geoData.OrderBy(x => x.AtTime).ToList();
                                metroProgressSpinnerMain.Visible = false;
                                panelFilter.Enabled = true;
                            }));
                        }
                        else
                        {
                            BeginInvoke((Action)(() =>
                            {
                                metroProgressSpinnerMain.Visible = false;
                                panelFilter.Enabled = true;
                            }));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
            }
        }


0 commentaires