2

我正在为游戏制作关卡编辑器,你是标准的平台游戏。默认情况下,级别大小为 24_Height 和 32_Width 乘以 32 的图块大小。因此默认情况下,面板容器大小为 1024 x 768。

您可以使用重新调整面板大小的窗口形式更改行和列。这是我遇到问题的地方。默认大小看起来不错,但是当增加它的大小时,面板本身并没有锁定到当前大小,而是分别在宽度和高度上扩展。

我想要的是它被锁定在默认大小,并且当面板变得比默认值大时,滚动条出现在适当的位置。

出于这个原因,我查看了事件选项卡中的自动滚动选项,但将其设置为 true 似乎并没有什么不同(因为即使面板离开表单也不会出现)。我查看了更改最大大小值(当前为 32000、32000),认为我仍然可以通过代码重新调整它的大小,但不能以相同的方式以相同的方式显示它。它没有用。

http://img4host.net/upload/2305134050aef7f46b283.png

http://img4host.net/upload/2305174350aef8e7b580f.png

如果有必要,绘制代码,尽管考虑到我刚刚开始这个项目,它非常空。

private void MapPanel_Paint(object sender, PaintEventArgs e)
{
    if (MapPanel.Width < (oMapGrid.TileColsValue * oMapGrid.TileSizeValue))
        MapPanel.Width = (oMapGrid.TileColsValue * oMapGrid.TileSizeValue);

    if (MapPanel.Height < (oMapGrid.TileRowsValue * oMapGrid.TileSizeValue))
    {
        MapPanel.Height = (oMapGrid.TileRowsValue * oMapGrid.TileSizeValue);
        MapPanel.AutoScroll = true;
    }

    for (int Row = 0; Row < oMapGrid.TileRowsValue; Row++ )
    {
        oPen_and_Brush.ClassGraphics.DrawLine(oPen_and_Brush.ClassPen, 0, Row * oMapGrid.TileSizeValue, MapPanel.Width, Row * oMapGrid.TileSizeValue);
    }
    for (int Col = 0; Col < oMapGrid.TileColsValue; Col++)
    {
        oPen_and_Brush.ClassGraphics.DrawLine(oPen_and_Brush.ClassPen, Col * oMapGrid.TileSizeValue, 0, Col * oMapGrid.TileSizeValue, MapPanel.Height);
    }
}
4

0 回答 0