用VB运行工程时,双击打开窗体文件,VB就自动关闭了,毫无提示,在此之前还出现对象库未注册,高手,咋办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用VB运行工程时,双击打开窗体文件,VB就自动关闭了,毫无提示,在此之前还出现对象库未注册,高手,咋办相关的知识,希望对你有一定的参考价值。

打开工程,代码能看到,但是“双击或者保存”就会自动关闭!希望高手出现,帮下我这菜鸟!真的非常感谢

把VB卸载,然后重新安装。。这应该是系统的问题。追问

以前编的都成这样了!重装了好几次不管用...好无助!希望帮忙:原因是一次运行窗口时卡住了,退不出来,我就强行关闭了;就这样了,但是我前面也经常强行关闭的啊?不知道

追答

如果重装VB不行的话,只有重做系统了。

我以前遇到过类似问题,最后也是只好重做系统了,相比较解决这个VB问题,不如重做系统来的快。

参考技术A 自己另外新建一个工程,然后随便设计点东西编写点代码。然后保存。然后 “双击或者保存” 看看怎么样。这样能判断出是你的那个工程有问题还是VB开发环境损害了是不是需要重新安装。追问

以前编的都成这样了!重装了好几次不管用...好无助!希望帮忙:原因是一次运行窗口时卡住了,退不出来,我就强行关闭了;就这样了,但是我前面也经常强行关闭的啊?不知道

c#窗体运行一下然后卡死,无法运行

这是一个仪表盘的程序,用两个模块采集信息,然后显示在仪表控件上。但是两个信息采集程序(就是测车速和测转速)同时运行窗体就会卡死,求大神帮忙,不胜感激

namespace WindowsFormsApplication11

public partial class Form1 : Form

。。。

public Form1()

。。。



private void SetPortProperty()


。。。。。


private int i;
private void timer1_Tick_1(object sender, EventArgs e)

double x, b, c;

/////////////// 测 转 速 ////////////////

sp.DiscardInBuffer();
System.Threading.Thread.Sleep(100);
try //读取电压值


bytess[0] = 0x01;
bytess[1] = 0x03;
bytess[2] = 0x00;
bytess[3] = 0x00;
bytess[4] = 0x00;
bytess[5] = 0x01;
bytess[6] = 0x84;
bytess[7] = 0x0A;

sp.Write(bytess, 0, 8);


catch (Exception)

MessageBox.Show("发送数据时发生错误!", "错误提示");
return;

System.Threading.Thread.Sleep(47);

sp.Read(ReceivedDat, 0, 7);

v = ReceivedDat[3];
w = ReceivedDat[4];
x = v * 16 * 16;
c = (x + w) * 6;
b = w;

gaugeContainer1.CircularGauges[0].Pointers[0].Value = c / 1080;

/////////////// 测 车 速 ////////////////

sp.DiscardInBuffer();
System.Threading.Thread.Sleep(10000);
try //读取电压值


bytess[0] = 0x02;
bytess[1] = 0x03;
bytess[2] = 0x00;
bytess[3] = 0x00;
bytess[4] = 0x00;
bytess[5] = 0x01;
bytess[6] = 0x84;
bytess[7] = 0x39;

sp.Write(bytess, 0, 8);


catch (Exception)

MessageBox.Show("发送数据时发生错误!", "错误提示");
return;

System.Threading.Thread.Sleep(47);

sp.Read(ReceivedData, 0, 7);

v = ReceivedData[3];
w = ReceivedData[4];
x = v * 16 * 16;
c = (x + w) * 6;
b = w;

gaugeContainer2.CircularGauges[0].Pointers[0].Value = c / 1080;

你的time1的时间间隔是多少,如果时间很短,然后你又在timer中sleep的话必然会卡死(更别说那个System.Threading.Thread.Sleep(10000);),因为你只有一个线程,这种东西原本适合是用多线程来做的,如果不大改的话,建议将所有的sleep用这个方法来代替代,也就是
public static void Delay(int milliSecond)

int start = Environment.TickCount; while (Math.Abs(Environment.TickCount - start) < milliSecond)//毫秒

Application.DoEvents();


比如原本的Sleep(10000)就是Delay(10000)
至于多线程的方法,简单来说就是新开一个线程,然后将你原本的timer中的代码都放进去,这样它就不会干扰到主界面,不过随之的问题就是其它线程中是不能直接访问主界面的,解决方法你可以搜索下C# 跨线程 控件
参考技术A 你是不是 复制的别人的代码 模块没引用啊!追问

“模块没引用”什么意思

以上是关于用VB运行工程时,双击打开窗体文件,VB就自动关闭了,毫无提示,在此之前还出现对象库未注册,高手,咋办的主要内容,如果未能解决你的问题,请参考以下文章

为啥我用VB写的小程序生成工程后打开后几秒就自动关闭了(如用V。有时候下载的一些软件业有类似的情况。

c#如何实现关闭当前窗体并打开另一个已经创建的窗体。

启动VB,打开工程

在VB中怎么用代码弹出输入对话框

vb MDI窗体怎么用?麻烦告诉我

vb如何实现只有当前窗体被关闭才能操作其他窗体