C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■22421  Re[1]: フォームが表示されない
□投稿者/ カドルドエグ -(2008/07/23(Wed) 13:30:08)
記事No.22420 のレス /過去ログ42より / 関連記事表示
削除チェック/

■64143  画像の繰り返し表示ができない
□投稿者/ sekitui -(2012/11/09(Fri) 00:10:08)

    分類:[C#] 

    Visual C#のフォームアプリケーションでスロットマシーンゲームを作ろうと考えています。
    8個の画像を用意して3箇所の表示場所に順番に表示させていくプログラムを考えました。
    キーボードで止めるためスレッドを使っています。重要そうな部分だけ書いていきます。

          public int Reel;
    Picture[0] = pictureBox1;
    Picture[1] = pictureBox2;
    Picture[2] = pictureBox3;
    Picture[3] = pictureBox4;
    Picture[4] = pictureBox5;
    Picture[5] = pictureBox6;
    Picture[6] = pictureBox7;
    Picture[7] = pictureBox8;
      
          private void Start()
       {
       while (Stopper == 0)
       {
       Thread.Sleep(10);
       Starting();
       }
       }

    protected delegate void StartEventHandler();
    protected void Starting()
    {

    if (InvokeRequired)
    {
    StartEventHandler reh = new StartEventHandler(Starting);
    Invoke(reh);
    }
    else
    {
            //Pictureを1.2.3.4.5.6.7.8.1.2.3...と順に表示していく
    else if (Reel == 7)
    {
    Zugara.Run(Picture[7], Picture[0], Picture[1]);

    Thread.Sleep(300);
    Reel=0;
    }
    //Thread.Sleep(1);
    else if (Reel == 6)
    {
    Zugara.Run(Picture[6], Picture[7], Picture[0]);
    Thread.Sleep(300);
    Reel++;
    }
    else
    {
    Zugara.Run(Picture[Reel], Picture[(Reel + 1)], Picture[(Reel + 2)]);
    Thread.Sleep(300);
    Reel++;
    }
    }
    }

    //Zugara.cs

    public void Run(PictureBox picturebox1, PictureBox picturebox2, PictureBox picturebox3)
    {
    this.MyPictureBox1 = picturebox1;
    this.MyPictureBox2 = picturebox2;
    this.MyPictureBox3 = picturebox3;
    Redraw();
    this.MyPictureBox1.Refresh();
    this.MyPictureBox2.Refresh();
    this.MyPictureBox3.Refresh();

    }

    private void Redraw()
    {
    MyPictureBox1.Location = new Point(175, 80);
    MyPictureBox2.Location = new Point(175, 135);
    MyPictureBox3.Location = new Point(175, 190);
    }


    これで動かすと、2週目のPicture[0]がMyPictureBox1に表示されるべき部分で前の画像が表示されたままになってしまいます。
    MypictureBox1だけでなくMypictureBox2、MypictureBox3の挙動も正常のようには見えないです(同じ画像が2連続で表示されるなど)。
    上書きを重ねているのでどこかおかしな所が出る可能性はありますが、原因がわかりません。解決に協力お願いします。
親記事 /過去ログ108より / 関連記事表示
削除チェック/

■87414  Re[2]: No87308 の続きになるのですが
□投稿者/ 夜叉丸 -(2018/05/18(Fri) 16:12:37)
    No87407 (猫まっしぐら さん) に返信
    No87408 (魔界の仮面弁士 さん) に返信

    すみませんでした。
    PanelContainer ではなくて SplitContainer でした。

    Panel1Collapsed → 説明には「Panel1を縮小するかを決定します。」
    になていますが、考え方は Visible と同じでいいんですか?


記事No.87405 のレス /過去ログ150より / 関連記事表示
削除チェック/

■87408  Re[1]: No87308 の続きになるのですが
□投稿者/ 魔界の仮面弁士 -(2018/05/18(Fri) 11:58:10)
    No87405 (夜叉丸 さん) に返信
    > 今まで Panel1(LEFT) と Panel2(Fill) があり,その間に Split1 がある場合に

    こういう状態だったということでしょうか。

    Panel panel1, panel2;
    Splitter split1;
    public Form1()
    {
      InitializeComponent();
      Controls.Clear();
      split1 = new Splitter() { Dock = DockStyle.Left, BackColor = Color.HotPink };
      panel1 = new Panel() { Dock = DockStyle.Left, BackColor = Color.LightCyan };
      panel2 = new Panel() { Dock = DockStyle.Fill, BackColor = Color.LightGreen };
      Controls.AddRange(new Control[] { panel2, split1, panel1 });
      panel1.DoubleClick += (sender, e) => panel1.Visible = split1.Visible = false;
    }



    > PanelContainer を使用した場合には
    > どのように処理すればよいのでしょうか?

    PanelContainer というのは
    SplitContainer のことでしょうか。

    SplitContainer splitContainer1;
    public Form1()
    {
      InitializeComponent();
      Controls.Clear();
      splitContainer1 = new SplitContainer() { Dock = DockStyle.Fill, BackColor = Color.HotPink };
      splitContainer1.Panel1.BackColor = Color.LightCyan;
      splitContainer1.Panel2.BackColor = Color.LightGreen;
      Controls.Add(splitContainer1);
      splitContainer1.Panel1.DoubleClick += (sender, e) => splitContainer1.Panel1Collapsed = true;
    }
記事No.87405 のレス /過去ログ150より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -