我正在尝试创建一个函数,该函数将对 DataGridView 中的 2 个(鼠标)事件执行一些指令。为了不重复两个事件中的说明。
这是我的代码:
private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex >= 0 && e.RowIndex >= 0 && dgv.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewLinkCell)
{ Process.Start(dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string); }
}
private void dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.ColumnIndex >= 0 && e.RowIndex >= 0 && dgv.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewLinkCell)
{ Process.Start(dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string); }
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试过这样做:
private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
ReLink(e);
}
private void dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
ReLink(e);
}
//no matter which event I will specify, it is clear that it will only work for one event
private void ReLink(DataGridViewCellMouseEventArgs e)
{
if (e.ColumnIndex >= 0 && e.RowIndex >= 0 && dgv.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewLinkCell)
{ Process.Start(dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string); }
}
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法解决这个问题?...
小智 6
你可以继续这个
private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
ReLink(e.ColumnIndex ,e.RowIndex);
}
private void dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
ReLink(e.ColumnIndex ,e.RowIndex);
}
//no matter which event I will specify, it is clear that it will only work for one event
private void ReLink(int colIndex, int rowIndex)
{
if (colIndex >= 0 && rowIndex >= 0 && dgv.Rows[rowIndex].Cells[colIndex] is DataGridViewLinkCell)
{ Process.Start(dgv.Rows[rowIndex].Cells[colIndex].Value as string); }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |