Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET中的Windows窗体问题_Vb.net_Visual Studio 2010 - Fatal编程技术网

VB.NET中的Windows窗体问题

VB.NET中的Windows窗体问题,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我正在制作一个非常简单的游戏应用程序。主窗体(Form1)上有一个标记为Button1的按钮。(非常有创意的命名,嗯?)应用程序的要点是在表单上沿随机方向移动按钮。我的问题是,当我开始调试时(我使用的是Visual Studio 2010),表单从未显示,当我打开Windows任务管理器时,我的.exe名称从未显示在进程列表中。我想知道我使用的代码是否与此有关。这是我的密码: Class Form1 Private Sub Form1_Load(...) Initi

我正在制作一个非常简单的游戏应用程序。主窗体(Form1)上有一个标记为Button1的按钮。(非常有创意的命名,嗯?)应用程序的要点是在表单上沿随机方向移动按钮。我的问题是,当我开始调试时(我使用的是Visual Studio 2010),表单从未显示,当我打开Windows任务管理器时,我的.exe名称从未显示在进程列表中。我想知道我使用的代码是否与此有关。这是我的密码:

Class Form1  
    Private Sub Form1_Load(...)  
       InitializeComponent()  
       While True
           MoveIt()  
       End While
    End Sub  
    Sub MoveIt()  
       Dim rand As Short  
       Randomize()  
       rand = (Rnd() * 5)  
       Select Case rand  
           Case 0  
               'move button up 5px  
               Button1.Top -= 5  
           Case 1  
               'move button up 5px  
               Button1.Top -= 5  
           Case 2  
               'move button left 5px  
               Button1.Left -= 5  
           Case 3  
               'move button right 5px  
               Button1.Left += 5  
           Case 4  
               'move button down 5px  
               Button1.Top += 5  
           Case 5  
               'move button down 5px  
               Button1.Top += 5  
       End Select  
    End Sub  
End Class          

是的,您的代码与此有关。表单的
Load
事件中有一个没完没了的
While
循环,这意味着
Load
事件永远不会返回,这意味着表单基本上永远不会完成加载

使用
BeginInvoke
Load
事件触发随机按钮移动过程的开始,而不是从
Load
事件调用此命令:


是的,您的代码与此有关。表单的
Load
事件中有一个没完没了的
While
循环,这意味着
Load
事件永远不会返回,这意味着表单基本上永远不会完成加载

使用
BeginInvoke
Load
事件触发随机按钮移动过程的开始,而不是从
Load
事件调用此命令:


如果处于调试模式,则任务管理器中不会有exe

对于表单问题,你可以设置断点并缓慢调试


尝试将
form1 load
放在
初始化组件

下面。如果处于调试模式,则任务管理器中不会有exe

对于表单问题,你可以设置断点并缓慢调试


尝试将
form1加载
放在
初始化组件
下面

您不能在WinForms中编写无限循环

如果您这样做,您的程序将永远没有机会处理消息,因此它将无法工作


相反,您应该使用计时器。

您不能在WinForms中编写无限循环

如果您这样做,您的程序将永远没有机会处理消息,因此它将无法工作


相反,应该使用计时器。

如果要移动按钮,请使用按钮的渲染或预渲染。。。在表单加载上使用无限循环使其挂起…

如果要移动按钮,请使用按钮的渲染或预渲染。。。在表单加载上使用无限循环使其挂起…

sry。。没有看到while循环。sry。。没有看到while循环。