2016-03-21 121 views
1

對不起,fot是這個語言的新手。這是我的簡單情況。Visual c#讀取DataGridView數據並顯示在圖片框中

我有一個DataGrid這裏我把我的庫存物品,以這樣的方式

public void UpdateInventoryListUI() 
    { 
     dGridInvetory.RowHeadersVisible = false; 

     dGridInvetory.ColumnCount = 2; 
     dGridInvetory.Columns[0].Name = "Name"; 
     dGridInvetory.Columns[0].Width = 112; 
     dGridInvetory.Columns[1].Name = "Quantity"; 

     dGridInvetory.Rows.Clear(); 


     foreach (InventoryItem inventoryItem in mainForm1._player.Inventory) 
     { 
      if (inventoryItem.Quantity > 0) 
      { 


       dGridInventory.Rows.Add(new[] { inventoryItem.Details.Name, oggettoInventory.Quantity.ToString() }); 
      } 

     }    
    } 

確定它工作正常,並告訴我我的項目。 現在我想創建一個事件,當我用鼠標選擇行(整行 - 所以名稱和數量)它顯示我在圖片框中的那個 項目的圖像。我需要知道如何讀取像下面的字符串:

private void dGridInventory_MouseClick(object sender, MouseEventArgs e) 
    { 
      if(// the string "Name" on row is == "Mask_DPS"){ 
      picBoxMask.Image = Properties.Resources.MASK_DPS; 
      labelInfo.Text = "This is a dps Mask!"; 
    } 
      if((// the string "Name" on row is == "Mask_TANK"){ 
      picBoxMask.Image = Properties.Resources.MASK_TANK; 
      labelInfo.Text = "This is a tank mask!; 

      //...and so on! 
    } 

你能幫助我嗎?只需單擊行並比較行中的字符串即可。如果是相同的,然後在我的圖片框中顯示圖像。

謝謝大家和我的英語不好。

回答

0

你沒有使用你想要完成的最好的事件。嘗試使用SelectionChanged事件代替:

void dGridInventory_SelectionChanged(object sender, EventArgs e) { 
    if (dGridInventory.CurrentRow != null) { 
    if (dGridInventory.CurrentRow.Cells["Name"].Value.ToString() == "Mask_DPS") { 
     // etc... 
    } 
    } 
} 

確保事件正確訂閱了DataGridView控件。

+0

Thx非常,它完美的作品! –

相關問題