在面板网格中导航
Navigating through a grid of panels
我正在尝试使用一个小面板网格和四个方向按钮在 C# 中创建一个小项目,如下所示:
但我不知道如何使用这些面板创建简单的导航系统。 "character" 只是一个彩色面板。所有面板都按照它们前面的坐标命名(p11 到 p66) 有没有办法执行某种功能可以占据 "character" 的位置并在同一位置为面板着色?
例子
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
部分应该是您当前所在的面板。那是我不知道怎么做的部分。
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;
}
}
然后在表格中 class
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;
}
...
您可能需要添加代码来设置起始颜色和坐标。
我正在尝试使用一个小面板网格和四个方向按钮在 C# 中创建一个小项目,如下所示:
但我不知道如何使用这些面板创建简单的导航系统。 "character" 只是一个彩色面板。所有面板都按照它们前面的坐标命名(p11 到 p66) 有没有办法执行某种功能可以占据 "character" 的位置并在同一位置为面板着色?
例子
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
部分应该是您当前所在的面板。那是我不知道怎么做的部分。
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;
}
}
然后在表格中 class
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;
}
...
您可能需要添加代码来设置起始颜色和坐标。