0

Vista コンピュータと Millennium Edition があります。私の Vista には Microsoft.NET 4.5 がインストールされており、問題なく動作します。私の ME には 1.1 があります。Windows フォームに PictureBox を作成しました。したがって、PictureBox の BackColor はグレーまたはグリーンなどと書くことができます。Ok!しかし、フォームのコントロールに追加した後に色を変更しようとすると、そうではありません。色、サイズ、場所などは変わりません。相互作用しません。フォームで同じものを作ろうとしましたが、うまくいきませんでした。「pb.Update();」のようなものも書き込もうとしましたが、うまくいきませんでした。(たとえば、フォームの BackColor を変更します)。コードは次のとおりです。

コード:

プログラム.CS

using System;
using System.Windows.Forms;

namespace MovementTest
{
public class Program
{
    [STAThread]
    public static void Main()
    {
        Application.Run(new Game());
    }
}
}

ゲーム.cs

using System;
using System.Windows.Forms;
using System.Drawing;

namespace MovementTest
{
public class Game : Form
{
    public Game()
    {
        this.Size = new Size(300, 300);
        new Ball();
        this.Controls.Add(new Ball());
        Ball b = new Ball();
        this.KeyDown += new KeyEventHandler(b.CD);
    }

}
}

ボール.CS

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MovementTest
{
public class Ball : PictureBox
{
    public PictureBox pb;
    public Ball()
    {
        pb = new PictureBox();
        this.Size = new Size(50, 50);
        this.BackColor = Color.Blue;
    }
    public void CD(object sender, KeyEventArgs e)
    {
        if(e.KeyCode == Keys.Space)
        {
            Game g = new Game();
            g.BackColor = Color.Red;
        }
    }
}
}
4

1 に答える 1

1

最初: コードを投稿します。

ここで、Game.cs を次のように変更します。

    public Game()
    {
        this.Size = new Size(300, 300);
        Ball b = new Ball();
        this.Controls.Add(b);
        this.KeyDown += new KeyEventHandler(b.CD);
    }

そして ball.cs から:

    public void CD(object sender, KeyEventArgs e)
    {
        if(e.KeyCode == Keys.Space)
        {
            this.BackColor = Color.Red;
        }
    }
于 2013-06-12T21:29:12.403 に答える