J'ai un pour par exemple, par exemple, p> Cependant, ce code ne soumet pas l'événement datagridview code> 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.
clic code> sur le DataGridView. Si quelqu'un a codé comment cliquer sur une DataGridView à partir du code, veuillez étendre votre aide type. P> p>
5 Réponses :
Appelez simplement la méthode du gestionnaire d'événements, par exemple:
datagridviewRowClickedEventHandler(new object(), new eventargs());
On dirait que vous avez la première moitié, réglant les flux de propéreurs sélectionnés code> à 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. P>
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 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
}
dataGridView.CurrentCell = dataGridView[<column>, <row>];
Je suppose que vous voulez appliquer La meilleure façon de le faire comme ça p> et voici le code pour simuler Cliquez sur la ligne. P> datasource code> et sélectionnez la première ligne? Droite?
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);
}
}
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.