强制重新调整大小为8的奇数倍

时间:2011-09-11 20:02:01

标签: vb.net resize size splitcontainer

我有几个彼此嵌套的分割面板。问题是,我正在中心面板内渲染一个8x8平铺游戏。基本上,面板的高度和宽度需要是8的奇数倍,所以我可以很容易地找到中心贴图。

我正在使用VB.net,所以所有.net解决方案都可以接受:)

编辑抱歉,这有点令人困惑......

我的意思是,我需要宽度和高度可以被8整除。数字8乘以应该是奇数:

再次编辑以下这些数字并未指代尺寸。它们指的是两个数相乘。我已将它们更改为*以显示此信息。以下这些数字适用于高度和宽度。一个数字应该是奇数,另一个数字应该是8. 8 * x

5 * 8 - 好

6 * 8 - 不好

2 个答案:

答案 0 :(得分:1)

您可以通过对数字执行mod 2来检查某些事物是否奇怪。所以就这样做

if number mod 2 == 1:
   code for board

答案 1 :(得分:0)

你声明你需要将高度和宽度都分为8,但在你的例子中,只有高度可以被它整除。无论如何,这是一种方法:

将其放入resize事件处理程序:

Dim Height as Integer = SplitControl1.Panel1.Width
    If Height mod 8 <> 0 then
  Height -= (Height mod 8)
End If

Height += 9 //This ensures that the Height is not 0 and still is divisible by 8 + 1 (to be odd)

Dim Width as Integer = SplitControl1.Panel1.Width
If Width mod 8 <> 0 then
   Width -= (Width mod 8)
End If

Width += 9 //This ensures that the Width is not 0 and still is divisible by 8 + 1 (to be odd)

最后

SplitControl1.Panel1.Width = Width
SplitControl1.Panel1.Height = Height