2013-04-08 117 views
0

如果是这样,我们如何分别处理cellcontentclick事件?我正在动态添加列。继承人我的代码: -
dataGridViewShow.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "Date", DataPropertyName = "Date", CellTemplate = new DataGridViewTextBoxCell() });datagridview中可以有两个不同类型的链接列吗?

DataGridViewLinkColumn toComputer = new DataGridViewLinkColumn(); 
     toComputer.HeaderText = "Status"; 
     toComputer.Name = "link1"; 
     toComputer.UseColumnTextForLinkValue = true; 
     toComputer.Text = "Save to File"; 
     toComputer.ActiveLinkColor = Color.White; 
     toComputer.LinkColor = Color.Blue; 
     toComputer.TrackVisitedState = true; 
     toComputer.VisitedLinkColor = Color.Green; 
     dataGridViewShow.Columns.Add(toComputer); 
     dataGridViewShow.CellContentClick += (SaveFileType_click); 

DataGridViewLinkColumn toNet = new DataGridViewLinkColumn(); 
     toLinx.HeaderText = " "; 
     toLinx.Name = "link2"; 
     toLinx.UseColumnTextForLinkValue = true; 
     toLinx.Text = "Send to Net"; 
     toLinx.ActiveLinkColor = Color.White; 
     toLinx.LinkColor = Color.Blue; 
     toLinx.TrackVisitedState = true; 
     toLinx.VisitedLinkColor = Color.Green;    
     dataGridViewShow.Columns.Add(toNet); 
     dataGridViewShow.CellContentClick += ("Don't know how this gets handled"); 

上面的代码确实显示链接类型的两个不同的列,但我想不通我怎么分别处理每个事件?

private void SaveFileType_click(object sender, DataGridViewCellEventArgs e) 
    { 
     selectedRow = e.RowIndex; 

     if (e.ColumnIndex == 0) 
     { 
      //some code goes here 
     }if (e.ColumnIndex == 1 && (string)dataGridViewShow[e.ColumnIndex, e.RowIndex].Value != "Complete") 
     { 
      //some code goes here 
     } 
    } 

回答

2

您不单独处理事件。您需要处理OnCellClickCellContentClick事件。然后使用DataGridViewCellEventArgs对象e,您可以获取被点击的列和行。基于这些细胞被选中你处理这个事件不同

public void dataGridView1_OnCellClick(object sender, 
    DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex == YourLinkColumnIndexA) 
     //some code goes here. 
    else if (e.ColumnIndex == YourLinkColumnIndexB) 
     //some code goes here. 
} 

所以你连线了事件中的代码为你做,但只有一次

我希望这会有所帮助。

+0

它的确帮助了谢谢。 – smons 2013-04-08 21:17:24

相关问题