烦!VB真奇怪! 明明是写了 控件3.height=控件1.height+控件2.height, 跟踪调试也运行了这句,可是控件3的高度依然不变,不等于后面的两个控件的高度之和! 有欲哭无泪的感觉. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.height+控件2.height=?会不会有什么问题 kmzs(.:RNPA:.山水岿濛),感谢关注。 这是我的一个自定义控件,我想让它在运行时完整显示它所包含的内容,可是,运行后,它的高度依然等于text1的高度. 应该没有什么别的事件影响了。 一个星期前还能得到预期的结果,放了一个星期,干完别的事情再回来,现在,运行的结果就面目全非了。不仅是高度,子控件的宽度也不对了。Private Sub UserControl_Resize() If Ambient.UserMode = False Then UserControl.Height = Text1.Height Text1.Width = UserControl.Width - Command1.Width Command1.Left = Text1.Width Else UserControl.Height = List1.Top + List1.Height '这一句,执行后,usercontrol.height的高度没有改变。 UserControl.Width = IIf(List1.Width > Text1.Width + Command1.Width, List1.Width, Text1.Width + Command1.Width) End If End Sub kmzs(.:RNPA:.山水岿濛),感谢关注。 这是我的一个自定义控件,我想让它在运行时完整显示它所包含的内容,可是,运行后,它的高度依然等于text1的高度. 应该没有什么别的事件影响了。 一个星期前还能得到预期的结果,放了一个星期,干完别的事情再回来,现在,运行的结果就面目全非了。不仅是高度,子控件的宽度也不对了。Private Sub UserControl_Resize() If Ambient.UserMode = False Then UserControl.Height = Text1.Height Text1.Width = UserControl.Width - Command1.Width Command1.Left = Text1.Width Else UserControl.Height = List1.Top + List1.Height '这一句,执行后,usercontrol.height的高度没有改变。 UserControl.Width = IIf(List1.Width > Text1.Width + Command1.Width, List1.Width, Text1.Width + Command1.Width) End If End Sub minajo21(大眼睛): 那你是怎样解决的呢? aa=1.height+控件2.heightmsgbox aa看一下AA有没有变 aa=1.height+控件2.heightmsgbox aa检测一下AA是否会变 我觉得是你把各个控件的关系搞混了,比如UserControl和list1是同时处在form上,还是它们分别在不同的容器上,如果是这样,肯定导致你达不到效果!仅供参考!!! guoyx(guoyx) :list1是UserControl中的一个子控件。 试试这样Private Sub Form_Load() UserControl11.Width = 100 Debug.Print "Form_Load", UserControl11.HeightEnd Sub 多加几个 msgbox、debug.print 检查一下不行么? 可能因为各个控件的ScaleMode值不一致所引起Private Sub UserControl_Resize() ScaleMode = 3 '加上这行试一试 If Ambient.UserMode = False Then UserControl.Height = Text1.Height Text1.Width = UserControl.Width - Command1.Width Command1.Left = Text1.Width Else UserControl.Height = List1.Top + List1.Height '这一句,执行后,usercontrol.height的高度没有改变。 UserControl.Width = IIf(List1.Width > Text1.Width + Command1.Width, List1.Width, Text1.Width + Command1.Width) End If End Sub ehais(海阔但钱包不空):试过了,不行。谢谢回贴。 试一下是可以用一个全局变量来过度一下,我怀疑可能你的控件相关产生死循环了,具体是在确定List1控件没受UserControl的属性映响也就是没有关连时Public SizeChange=List1.Top + List1.Height 后在 UserControl_Resize() 中将UserControl.Height = List1.Top + List1.Height 改为 UserControl.Height =SizeChange试一下 victorycyz(中海,干活去,别在CSDN玩耍!) :list1是UserControl中的一个子控件。这就对了,list1的top是由usercontrol决定的,你usercontrol的高度又由list1得到,什么逻辑???? 发此贴本来是想发一发牢骚,所以,只放了一分。没想到这么多热心的朋友来给我指点。太感谢了,现在,专门发了一个此问题的贴子,请有兴趣的朋友再来捧个场,来者都有分。http://expert.csdn.net/Expert/topic/2272/2272533.xml?temp=.6750299 看看你的那个控件其它的属性设置:是不是不允许改变高度! 你将控件1.height =5000(或任意数字),看是不是不变,如果不变,则表示在自定义时就已经出问题了!不是现在的问题! 你用的是Textbox?那么要么修改字体大小,要么用多行,单行时行高总是怪怪的UserControl.Height = List1.Top + List1.Height 这会造成循环引用?List1莫名 用vb的运行即时监视看看各个变量都在干什么控件3.height=控件1.height+控件2.height问题可能不在公式上,也有可能来自1或2任何一个变量。 建议加一句 Me.caption=控件1.height+控件2.height,Try 如何让vb6的控件显示英文 Adodc+MSHFlexGrid问题 达人来 高分送分 utf-8的byte型阵列如何存入到数据库中的char型中 求求大家都来帮忙啊,谢谢! 请问tts怎样输出mp3文件,我只知道怎样输出wav,想直接输出,不想先输出后转化。 在mdiform中打开一个子窗口后,如何对这个子窗口进行操作?比如说在子窗口中画图。。 一个简单的问题 如何在8,16位色下,图片框能正常显示图片 请教:关于vb+API+窗口句柄 SQL语句通不过,请老师帮忙修改下 CSDN好不稳定啊!连“我参与的问题”也进不去,回复更不行……郁闷 ※ 把MDI窗体放入系统托盘的问题 ※
会不会有什么问题
UserControl.Height = Text1.Height
Text1.Width = UserControl.Width - Command1.Width
Command1.Left = Text1.Width
Else
UserControl.Height = List1.Top + List1.Height '这一句,执行后,usercontrol.height的高度没有改变。
UserControl.Width = IIf(List1.Width > Text1.Width + Command1.Width, List1.Width, Text1.Width + Command1.Width)
End If
End Sub
UserControl.Height = Text1.Height
Text1.Width = UserControl.Width - Command1.Width
Command1.Left = Text1.Width
Else
UserControl.Height = List1.Top + List1.Height '这一句,执行后,usercontrol.height的高度没有改变。
UserControl.Width = IIf(List1.Width > Text1.Width + Command1.Width, List1.Width, Text1.Width + Command1.Width)
End If
End Sub
msgbox aa
看一下AA有没有变
msgbox aa
检测一下AA是否会变
Private Sub Form_Load()
UserControl11.Width = 100
Debug.Print "Form_Load", UserControl11.Height
End Sub
Private Sub UserControl_Resize()
ScaleMode = 3 '加上这行试一试
If Ambient.UserMode = False Then
UserControl.Height = Text1.Height
Text1.Width = UserControl.Width - Command1.Width
Command1.Left = Text1.Width
Else
UserControl.Height = List1.Top + List1.Height '这一句,执行后,usercontrol.height的高度没有改变。
UserControl.Width = IIf(List1.Width > Text1.Width + Command1.Width, List1.Width, Text1.Width + Command1.Width)
End If
End Sub
具体是在确定List1控件没受UserControl的属性映响也就是没有关连时
Public SizeChange=List1.Top + List1.Height
后在 UserControl_Resize() 中将
UserControl.Height = List1.Top + List1.Height
改为 UserControl.Height =SizeChange
试一下
这就对了,list1的top是由usercontrol决定的,你usercontrol的高度又由list1得到,什么逻辑????
UserControl.Height = List1.Top + List1.Height
这会造成循环引用?
List1
莫名