一、c# 有几个imagebox选中的置顶
c#有多个imagebox选中的置顶。
show时把垫底的窗口对象作为参数。比如在form1中: form2 frm=new form2();frm.show(this);这样打开的form2窗口就保持在本窗口之上了。
每个数据类型都有有符号和无符号两种类型.与Java相同的是,一个字符变量包含的是一个16位的Unicode字符,C#新的数据类型是decimal数据类型,对于货币数据,它能存放28位10进制数字。
数据类型:
C#拥有比C/C++或者Java更广泛的数据类型.这些类型是bool、byte、sbyte、short、ushort、int、uint、long、ulong、float、double和decimal。
而一个名叫string的类也象object一样是这个语言的一部分,作为语言的一部分存在意味着编译器有可能使用它,无论何时在程序中写入一句带引号的字串,编译器会创建一个string对象来保存它。
二、VB中Image和PictureBox的区别
图片框PictureBox和图像框ImageBox的区别在于:
1-ImageBox使用系统资源少,重新绘图的数度较快
2-PictureBox只能使用print方法和绘图语句绘制图形,ImageBox则不能
3-ImageBox只能用于显示图片,而PictureBox除了可以显示图形外,还可以作为其他控件的容器,可以利用剪切板给PictureBox添加图形
4-ImageBox能够延伸图形的大小,以适应控件的大小,而PictureBox则不能,但PictureBox能自动调整控件大小以全图形显示出来
三、vb中利用picturebox或imagebox显示网络图片的问题
下面是在VB中显示网页图片的三种方法,其中第一种方法就是完全适合你的要求的:
第一种方法:如果知道图片的URL,那么可以直接在Picture1中显示:
Private Declare Function OleLoadPicturePath Lib"oleaut32.dll"(ByVal szURLorPath As Long, ByVal punkCaller As Long, ByVal dwReserved As Long, ByVal clrReserved As OLE_COLOR, ByRef riid As TGUID, ByRef ppvRet As IPicture) As Long
Private Type TGUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Public Function LoadPicture(ByVal strFileName As String) As Picture
Dim IID As TGUID
With IID
.Data1=&H7BF80980
.Data2=&HBF32
.Data3=&H101A
.Data4(0)=&H8B
.Data4(1)=&HBB
.Data4(2)=&H0
.Data4(3)=&HAA
.Data4(4)=&H0
.Data4(5)=&H30
.Data4(6)=&HC
.Data4(7)=&HAB
End With
On Error GoTo LocalErr
OleLoadPicturePath StrPtr(strFileName), 0&, 0&, 0&, IID, LoadPicture
Exit Function
LocalErr:
Set LoadPicture= VB.LoadPicture(strFileName)
Err.Clear
End Function
Private Sub Command1_Click()
Picture1.Picture= LoadPicture("")
End Sub
第二种方法:如果知道图片的URL,那么可以先把图片下载到本地,再在Picture1中显示:
Private Declare Function URLDownloadToFile Lib"urlmon" Alias"URLDownloadToFileA"(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Sub Command1_Click()
URLDownloadToFile 0&,"", App.Path&"\bdlogo.gif", 0&, 0&
Picture1.Picture= LoadPicture(App.Path&"\bdlogo.gif")
End Sub
第三种方法:如果不知道图片URL,但知道网页的URL,那么可以用WebBrowser控件显示网页,再从中找到需要的图片显示到Picture1中:
Private Sub Command1_Click()
Dim CtrlRange As Object, img As Object
Set CtrlRange= WebBrowser1.Document.body.createControlRange
For Each img In WebBrowser1.Document.images
If InStr(img.src,"bdlogo") Then
CtrlRange.Add img
CtrlRange.execCommand"Copy"
Picture1.Picture= Clipboard.GetData
Exit For
End If
Next
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate""
End Sub
以上方法都可以显示百度首页的那个Logo图片。相比而言,第一种方法是最好的,别看它代码最多,但它是完全用代码实现的,没有借助其他控件,也没有产生中间文件,用起来就好像网上的图片就是自己硬盘中的图片一样;第二种方法代码最简单,但它会产生硬盘文件,不过如果你恰巧需要下载文件的(就是说不但要显示,还想利用这个图片做其他操作),那么这个方法就是最佳选择了;第三种方法最复杂,需要用到网页控件,而且要用剪贴板过渡,不过如果你的软件本来就是需要用到网页控件的,或者你想获得同一网页的多张图片,那么这又是不二选择了。
补充说明:用URLDownloadToFile显示图片并不会比WebBrowser1.Navigate慢,可能还会更快一些,因为WebBrowser1也是把图片下载了再显示的,只不过它是把图片下载到IE的缓存区,第二次再运行的时候它就会直接到IE缓存区调用了,这个时候就是WebBrowser1快些。另外,WebBrowser1中的边框和滚动条都是可以去掉的,按照网页的处理方法就行了(网页都可以做到无边框无滚动条,WebBrowser1自然也可以)。