0

Visual Studio 2010 を使用して C# でプログラミングする方法を学ぶために、カード ゲームを作成することにしました。

私の目標:私はできるようになりたいです:

  1. カード デッキの裏面の画像 ( dealButton) を 1 つのフォーム ( cardTableForm)に変更するには
  2. blackCheckerDeckの画像ボックスをクリックしたときに、別のフォーム (optionsForm)の画像ボックス ( ) の画像と一致するようにしますoptionsForm

私のコード

 //Changes the deck design to blackChecker when the blackChecker design is selected.
 private void blackCheckerDeck_Click(object sender, EventArgs e)
   {
       cardTableForm.dealButton.Image = this.blackCheckerDeck.Image;
   }

私の問題:

最後の行の " cardTableForm.dealButton" の部分に次のエラーがあります。

An object reference is required for the non-static field, method, or property 'WindowsFormsApplication1.cardTableForm.dealButton'

このサイトからのアドバイスに基づいて、私はすでに ( dealButton) と ( blackCheckerDeck) のプロパティを

Modifiers: Public
4

1 に答える 1

0

cardTableFormクラスです。ディール ボタンの画像を変更するには、インスタンス (オブジェクト) を使用する必要があります。

オプション フォームを作成するときは、 のインスタンスを指定する必要がありますcardTableForm

だから、あなたがこのようなものを持っていると仮定しますcardTableForm

void OnShowOptions()
{
   var options = new OptionsForm();
   options.CardTable = this;  // tell options which card form to play with
   ...
}

オプションフォームで

public CardTableForm CardTable;

void blackCheckerDeck_Click(object sender, EventArgs e)
{
   CardTable.dealButton.Image = this.blackCheckerDeck.Image;
}
于 2013-01-30T05:58:25.257 に答える