浏览面板网格

时间:2017-09-10 10:32:42

标签: c# winforms panel

我尝试使用一小块面板和四个方向按钮在C#中创建一个小项目,如下所示:

enter image description here

但我不知道如何使用这些面板创建一个简单的导航系统。 "字符"只是一个彩色面板。所有面板的名称都与它们前面的坐标一样(p11到p66)有没有办法做某种能够占据"字符的位置"并将面板着色在同一位置?

示例

int coords = 21;

private void Up_Click(object sender, EventArgs e)
{
    Move(10);
}

Void Move(int coordchange)
{
    pcoords.BackColor = Color.White;
    coords = coords + coordchange
    pcoords.BackColor = Color.Black;
}

pcoords部分应该是您当前所在的面板。这是我不知道如何制作的部分。

1 个答案:

答案 0 :(得分:0)

public class Panels
{
     public Panel[, ] PanelsArray=new Panel[6,6] ;
     int xcoordinate;
     int ycoordinate;
     public Panel CurrentPanel{get{return PanelsArray[xcoordinate,ycoordinate];}
     public void MoveUp()
     {
         BeforeMove();
         if(ycoordinate>0) ycoordinate--;
         OnMove();
     }
     //declare MoveDown, MoveLeft and MoveRight similiarly
     ...
     private void BeforeMove()
     {
         CurrentPanel.BackColor=Color.White;
     }
     private void OnMove()
     {
        CurrentPanel.BackColor=Color.Black;
     }
}

然后在表单类

public partial class Form1 : Form
{
    public Panels Panels=new Panels();
    public Form1()
    {
            InitializeComponent();
            Panels.PanelsArray[0,0]=p00;
            PanelsPanelsArray[1,0]=p10;
            Panels.PanelsArray[2,0]=p20;
            //...
            Panels.PanelsArray[5,5]=p55;

    }
...

您可能需要添加代码来设置起始颜色和坐标。