2016-03-21 11 views
1

この言語の初心者です。ここに私の単純な状況です。Visual C#DataGridViewデータを読み込んでPictureBoxに表示

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() }); 
      } 

     }    
    } 

[OK]を、それが正常に動作し、私に私の項目を示しています。

は、私は私がこのように私の在庫アイテムを置くデータグリッドを持っています。 今私はマウスを使って行(行全体 - 名前と数量)を選択すると画像ボックスにその アイテムのイメージを表示するイベントを作成したいと思います。 STRINGを下記のように読む方法を知っておく必要があります:

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非常に、完璧に動作します! –

関連する問題