朋友,看看这段程序,你纳闷了吗?

问题描述

高手们帮忙看一下,就下面一段代码,F5执行无什么异常,可F8单步调试就出这样的错误,什么原因啊?谢谢啦!ImportsSystem.TextPublicClassForm1PrivateDeclareFunctionGetWindowDCLib"user32"Alias"GetWindowDC"(ByValhwndAsInteger)AsIntegerPrivateDeclareFunctionGetTextExtentPoint32&Lib"gdi32"Alias"GetTextExtentPoint32A"(ByValhdcAsInteger,ByVallpszAsString,ByValcbStringAsInteger,ByReflpSizeAsSize)PrivateDeclareFunctionReleaseDCLib"user32"(ByValhwndAsInteger,ByValhdcAsInteger)AsIntegerPrivateDeclareFunctionSelectObjectLib"gdi32"(ByValhdcAsInteger,ByValhObjectAsInteger)AsIntegerPublicFunctionGetStringSize(ByValvTextAsString,ByRefvFontAsFont)AsSize'待测量的字符串DimSAsString=vText'待测量的字体DimfAsFont=vFont'通过默认编码获取字符串长度,这种编码是半角一个字符,全角两个字符,只有这样才符合要求DimlAsInteger=Encoding.Default.GetBytes(S).Length'声明设备上下文DimDCAsInteger=GetWindowDC(Form.ActiveForm.Handle.ToInt32)'将字体句柄传入系统SelectObject(DC,f.ToHfont.ToInt32)'准备传址的参数,字体尺寸将被保存在该尺寸中DimmySizeAsSize'通过GetTextExtentPoint32函数获取尺寸GetTextExtentPoint32(DC,S,l,mySize)'释放设备上下文ReleaseDC(Form.ActiveForm.Handle.ToInt32,DC)'返回变量ReturnmySizeEndFunctionPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimTextFontAsNewSystem.Drawing.Font("Arial",24,FontStyle.Bold)DimsAsString="HelloWorld!"DimmySizeAsSizemySize=GetStringSize(s,TextFont)MsgBox(mySize.Height.ToString)EndSubEndClass

解决方案

解决方案二:
声明,不好意思啊,小弟是新手,没积分,有了一定补偿还请大虾们鼎力相助啊
解决方案三:
我本来是要拿图片展示的,后来还是把代码发了上来,但第一句说明性语句忘了作修改。反正我得问题就是:F5执行没什么,可F8单步调试就出现“未将对象引用设置到对象的实例”的错误
解决方案四:
Form.ActiveForm是nothing的原因吧,代码跟踪下。F5执行得到的值也不是你想要的吧
解决方案五:
不知道错在哪
解决方案六:
你加上Try....Catch.....EndTry,看一下
解决方案七:
引用3楼yanlongwuhui的回复:

Form.ActiveForm是nothing的原因吧,代码跟踪下。F5执行得到的值也不是你想要的吧

正确,单步调试的时候得不到Form.ActiveForm所以错误

时间: 2024-07-28 14:37:43

朋友,看看这段程序,你纳闷了吗?的相关文章

单片机-51控制舵机,这样的一段程序怎么让舵机转得慢一点

问题描述 51控制舵机,这样的一段程序怎么让舵机转得慢一点 /*为9克迷你舵机量身打造的精简51程序.开机后舵机有旋转.之后按下按键key1,舵机开始旋转*/ /*欢迎志同道合的朋友私信交流*/ #include #define uint unsigned int #define uchar unsigned char uchar k; //k表示总时间 因为定时器中断要用到k,所以放在程序头 sbit PWM1=P1^0; sbit key1=P3^7; //舵机启动开关 void init(

new-这段程序怎么修改?为什么没有输出结果?

问题描述 这段程序怎么修改?为什么没有输出结果? int[] iArrary = new int[] { 1, 5, 13, 6, 10, 55, 99, 2, 87, 12, 34, 75, 33, 47 }; for (int i = 0; i < iArrary.Length; i++) { for (int j =i+1; j < iArrary.Length; j++) { if (iArrary[i]>iArrary[j]) { int temp = iArrary[i];

面向对象-请问这段程序的输出是什么 为什么

问题描述 请问这段程序的输出是什么 为什么 public class Test { public static void main(String[] args) { Animal a = new Dog(); a.syaHi(); Animal b = new Bulldog(); b.syaHi(); Dog dog = (Dog)b; dog.syaHi(); check(dog); Bulldog bulldog = (Bulldog)b; check(bulldog); } public

输出-求用c语言编写这么一段程序

问题描述 求用c语言编写这么一段程序 1.用随机产生n个整数,赋给a数组 2.从小到大排序 3.计算最小数的阶乘 4.输出数组内容 解决方案 这个不难,就是先随机n个数放到数组再对数组排序,然后对数组第一个数求阶乘输出,最后输出整个排序过的数组,一步步来很简单 解决方案二: 参考代码段:https://github.com/707wk/Senior-middle-school/blob/master/Filling%20in%20the%20gaps.c 解决方案三: 你需要什么样的排序方式?最

求大家使用C++编写一段程序,将.dat文件的数据取出,然后放到8个数组中,谢谢!今晚就需要!

问题描述 求大家使用C++编写一段程序,将.dat文件的数据取出,然后放到8个数组中,谢谢!今晚就需要! 具体内容:用VC时候,编写上位机程序,需要将一个我已知的.dat文件的数据取出,隔8个点放到1个数组里,这样就将数据分到8个数组中了,需要在void CtestDlg::OnPaint()下面进行操作,把.dat数据取出.根本不懂啊,求指点 解决方案 没办法通过.dat后缀这个信息知道你的文件格式.再说你也根本不懂,建议还是去威客网站雇一个人帮你.

求助,已知二叉树前序终序号求后序的下面这段程序的递归部分的意义,看不懂啊

问题描述 求助,已知二叉树前序终序号求后序的下面这段程序的递归部分的意义,看不懂啊 public class Solution { public TreeNode reConstructBinaryTree(int [] pre,int [] in) { TreeNode root=reConstructBinaryTree(pre,0,pre.length-1,in,0,in.length-1); return root; } //前序遍历{1,2,4,7,3,5,6,8}和中序遍历序列{4,

c语言-这段程序问题在哪里,编译后的结果让我很费解

问题描述 这段程序问题在哪里,编译后的结果让我很费解 #include #include int main() { float x,y,z,k; char s,q; printf("请输入加油量:n"); scanf("%f",&x); printf("请输入服务类型:n"); printf("a.自己加n"); printf("b.自助加n"); scanf("%c",&

单片机 c-有段程序求大神帮忙找找哪里有问题

问题描述 有段程序求大神帮忙找找哪里有问题 是有关AT89c51单片机的c语言程序的,程序主要内容是测温显示以及键盘输入显示,使用keil编程,在protues软件上仿真..仿真结果与预想的有很大差别..希望大神能帮帮忙寻找错误....由于程序偏长,热心的大神可以留下QQ等,我会将程序发到你邮箱里面去的 解决方案 906254242我试试i

c语言-下面两段程序片,其执行效率有区别码?在实际代码中会选用哪一段,为什么?

问题描述 下面两段程序片,其执行效率有区别码?在实际代码中会选用哪一段,为什么? 其实就是在执行两层for循环的循环体中,for循环调换位置是否对效率有影响? 如下: 代码段一: for(row=5;--row>=0;) for(col=100;--col>=0;) sum=sum+a[row][col]; 代码段二: for(col=100;--col>=0;) for(row=5;--row>=0;) sum=sum+a[row][col]; 本人小白,望大神们指教. 解决方案

opencv c++-请问这段程序是什么意思呢?或者有没有大神帮我注释一下啊,跪谢啊!

问题描述 请问这段程序是什么意思呢?或者有没有大神帮我注释一下啊,跪谢啊! if(f) { if(!fgets(filename, (int)sizeof(_filename)-2, f)) break; //while(*filename && isspace(*filename)) // ++filename; if(filename[0] == '#') break; //continue; int l = (int)strlen(filename); while(l > 0