這就是情況。 我有一個目錄更新功能:組合框仍然在禁用模式下停用項目
public void UpdateInventoryList()
{
dgInventory.RowHeadersVisible = false;
dgInventory.ColumnCount = 2;
dgInventory.Columns[0].Name = "Name";
dgInventory.Columns[0].Width = 112;
dgInventory.Columns[1].Name = "Quantity";
dgInventory.Rows.Clear();
foreach (InventoryItem inventoryItem in _player.Inventory)
{
if (invetoryItem.Quantity > 0)
{
dgInventory.Rows.Add(new[] { inventoryItem.Details.Name, inventoryItem.Quantity.ToString() });
}
}
}
然後我對球員寵物組合框:
private void UpdatePet()
{
List<Pet> pets = new List<Pet>();
foreach (InventoryItem inventoryItem in _player.Inventory)
{
if (inventoryItem.Details is Pet)
{
if (inventoryItem.Quantity > 0)
{
pets.Add((Pet)inventoryItem.Details);
}
}
}
if (pets.Count == 0)
{
cboPet.Enabled = false;
btAttack.Enabled = false;
}
else
{
cboPet.DataSource = pets;
cboPet.DisplayMember = "Name";
cboPet.ValueMember = "ID";
cboPet.SelectedIndex = 0;
}
cboPet.SelectedIndexChanged += new System.EventHandler(cboPet_SelectedIndexChanged);
}
好了現在我有,如果你按下按鈕「犧牲」它刪除的功能
private void btSacrifice_Click(object sender, EventArgs e)
{
Pet currentpet = (Pet)cboPet.SelectedItem;
if (currentpet.Sacrificable == true && _player.CurrentHP < _player.MaxHP)
{
foreach (InventoryItem oi in _player.Inventory)
{
if (oi.Details.ID == currentpet.ID)
{
oi.Quantity--;
}
UpdateInventoryList();
}
if (_player.CurrentHP + currentpet.HealHP >= _player.MaxHP)
{
_player.CurrentHP = _player.MaxHP;
barHP.Value = _player.CurrentHP;
lblHp.Text = _player.CurrentHP.ToString();
btSacrifice.Enabled = false;
btCallPet.Enabled = false;
}
else
_player.CurrentHP = (_player.CurrentHP + currentpet.currentHP);
barHP.Value = _player.CurrentHP;
lblHp.Text = _player.CurrentHP.ToString();
btSacrifice.Enabled = false;
btCallPet.Enabled = false;
}
else if (!currentpet.Sacrificable == true)
{
tboxCombat.Text += "Not Sacrificable Pet!" + Environment.NewLine;
}
UpdateInventoryListI();
UpdatePet();
}
這一切都運行完美,但如果我在庫存只有一個寵物,的確在我的組合框它刪除寵物時:從清單中,然後在ComboBox太寵物該combobx被禁用,並顯示寵物的名稱,在這種情況下,我已刪除的寵物。如果我有更多的一個寵物,然後組合框啓用(這是可以的),並顯示我擁有的其他寵物。
爲什麼如果我只有一個寵物(在組合框中的「項」)刪除時仍然刪除它的名稱?
希望你能幫助和謝謝!
尤金
感謝這一行解決問題。 (沒有addind DataSource = null) – 2015-01-15 16:44:32
@EugenioOlivieri,這隻能解決/隱藏你當前的問題,但你的代碼還有其他問題需要擔心。 – Bolu 2015-01-15 16:46:29
爲什麼?問題出在哪裏? – 2015-01-15 17:16:03