私は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を作っています...誰かが手伝ってくれることを願っています!前もって感謝します!
vb.netで
'SuperAdventureの武器は=新しいSuperAdventure():最後に、InventoryScreen内のボタンをに変更します
; '新しいフォームを作成し、既存のフォームと対話しません。つまり、 'weapon.Show()'を使うと新しいフォームが表示され、他の既存のフォームは影響を受けません。さらに、フォームの初期化時にコンボボックスから何も選択されないので、コンストラクタで選択されたインデックスを指定しないかぎり、新しいフォームでも変更はありません – Everyone
'weapon.Show();'行@AmmarSalmanを参照すると、 'SuperAdventure weapon = new SuperAdventure();'行に続いて、私はあなたが暴露を経験すると信じています。それはより多くの疑問につながる可能性が高い。私はあなたがそれを保つことをお勧めします。 – hawkeyegold
客観的なプログラミングの聖母..あなたの紳士は、私がどれほど愚かなのか気づかされました。それで、コンボボックスをコンボボックスの中の別のクラス/フォームからコンボボックスに変える方法はどうすれば作れますか?このbtnEquipWeapon_Clickでクラスをインスタンス化する必要はありませんか? –