저는 C# 프로그래밍에 익숙하지 않으므로 아마도 저의 실수는 용서하십시오. 나는 SuperAdventure.cs (cboWeapons)에서 콤보를하고 난 다음 버튼을 통해 두 번째 양식의 수준에서 (InventoryScreen.cs)를 변경하는 것 캔트 :다른 폼의 관점에서 콤보 상자의 SelectedIndex를 변경할 수없는 이유는 무엇입니까?
private void btnEquipWeapon_Click(object sender, EventArgs e)
{
SuperAdventure weapon = new SuperAdventure();
String CurrentWeapon = this.cboCurrentWeapon.GetItemText(this.cboCurrentWeapon.SelectedItem);
weapon.cboWeapons_SelectedItemChange(CurrentWeapon);
}
을 그리고 여기 SuperAdventure에서 cboWeapons_SelectedItemChange 방법입니다 .cs :
public void cboWeapons_SelectedItemChange(string weapon)
{
cboWeapons.SelectedIndex = cboWeapons.FindString(weapon);
}
cboWeapons 콤보 상자는 데이터 바인딩하지만 즉,이 경우의 차이 너무 많이하지 것이라고 생각? 또한, 난 그냥 의해 SuperAdventure 형태로 만들어진 테스트 버튼을 사용하여 변경 할 수 있었다 :
private void btnChange(object sender, EventArgs e)
{
cboWeapons.SelectedIndex = cboWeapons.FindString("Sword");
}
을 그리고 네, 나는 주로 내 자신의 폼 클래스 등으로 C#에서 스콧 릴리의 튜토리얼을 기반으로 바보 같은 RPG를 만드는 중이라서 ... 누군가가 도울 수 있기를 바랍니다! 미리 감사드립니다!
'SuperAdventure 무기 = 새로운 SuperAdventure : 마지막으로
, InventoryScreen에있는 버튼으로 변경할 것 ; '새 양식을 만들고 기존 양식과 상호 작용하지 않습니다. 즉, weapon.Show()를 사용하면 새 폼이 표시되고 다른 기존 폼은 영향을받지 않습니다. 또한, 폼 초기화시 콤보 박스에서 아무 것도 선택되지 않으므로 생성자에서 선택된 인덱스를 지정하지 않으면 새 폼에서도 변경되지 않습니다. – Everyone
'weapon.Show();'라인을 추가하면 @AmmarSalman이 즉시 참조됩니다. 'SuperAdventure weapon = new SuperAdventure();'라인 다음에, 나는 당신이 계시를 경험할 것이라고 믿는다. 가능성이 더 많은 질문으로 이어질 것입니다. 계속 지키길 부탁드립니다. – hawkeyegold
객관적인 프로그래밍의 거룩한 어머니. 당신 신사들은 나를 어리 석다는 것을 깨닫게했습니다. 그렇다면 콤보 박스를 다른 클래스/폼의 콤보 박스에서 선택한 항목을 본질적으로 변경할 수있는 방법을 어떻게 만들 수 있습니까? 이 btnEquipWeapon_Click 클래스를 인스턴스화 할 필요가 없습니까? –