0

我有一台 Vista 电脑和一台 Millennium Edition。我的 Vista 安装了 Microsoft.NET 4.5 并且运行良好,而我的 ME 安装了 1.1。好吧,我在 Windows 窗体中创建了一个 PictureBox。所以我可以写出 PictureBox 的背景颜色是灰色或绿色或其他。好的!但是当我在添加到表单的控件后尝试更改它的颜色时,它没有。它不会改变颜色、大小、位置或类似的东西。它不交互。我试图用表格做同样的事情,但没有奏效。我也尝试写类似:“pb.Update();”,但它没有用。(例如更改表单的背景颜色)。这是代码:

编码:

程序.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 回答