vb.net源码

时间:2024-07-23 13:11:28编辑:阿星

在vb.net中如何打印dataGridview中的数据?

在按钮事件里调用printnbsp;类的方法如:nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;‘调用打印nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;queryform.DataGrid1.DataSourcenbsp;=nbsp;queryform.StuTablenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Dimnbsp;tempnbsp;Asnbsp;Printnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tempnbsp;=nbsp;Newnbsp;Print(queryform.DataGrid1)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;temp.setPrintFont()nbsp;=nbsp;Newnbsp;System.Drawing.Font(“宋体“,nbsp;12)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;temp.setPrintRecordNumbernbsp;=nbsp;30nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;temp.Print()==================================================//print.vbImportsnbsp;System.Drawing.PrintingPublicnbsp;Classnbsp;Printnbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintFontnbsp;Asnbsp;Newnbsp;Font(“宋体“,nbsp;10)nbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintLinesnbsp;Asnbsp;Integernbsp;=nbsp;50nbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintRecordNumbernbsp;Asnbsp;Integernbsp;=nbsp;45nbsp;nbsp;nbsp;nbsp;Privatenbsp;DataGridSourcenbsp;Asnbsp;DataGridnbsp;nbsp;nbsp;nbsp;Privatenbsp;evnbsp;Asnbsp;PrintPageEventArgsnbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintDataGridnbsp;Asnbsp;PrintDocumentnbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintPriviewnbsp;Asnbsp;PrintPreviewDialognbsp;nbsp;nbsp;nbsp;Privatenbsp;PageSetupnbsp;Asnbsp;PageSetupDialognbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintScalenbsp;Asnbsp;Doublenbsp;=nbsp;1nbsp;nbsp;nbsp;nbsp;Privatenbsp;DataGridColumnnbsp;Asnbsp;DataColumnnbsp;nbsp;nbsp;nbsp;Privatenbsp;DataGridRownbsp;Asnbsp;DataRownbsp;nbsp;nbsp;nbsp;Privatenbsp;DataGridTablenbsp;Asnbsp;DataTablenbsp;nbsp;nbsp;nbsp;Privatenbsp;Colsnbsp;Asnbsp;Integernbsp;nbsp;nbsp;nbsp;Privatenbsp;Rowsnbsp;Asnbsp;Integernbsp;=nbsp;1nbsp;nbsp;nbsp;nbsp;Privatenbsp;ColsCountnbsp;Asnbsp;Integernbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintingLineNumbernbsp;Asnbsp;Integernbsp;=nbsp;0nbsp;nbsp;nbsp;nbsp;Privatenbsp;PageRecordNumbernbsp;Asnbsp;Integernbsp;nbsp;nbsp;nbsp;Dimnbsp;X_unitnbsp;Asnbsp;Integernbsp;nbsp;nbsp;nbsp;Dimnbsp;Y_unitnbsp;Asnbsp;Integernbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintingPageNumbernbsp;Asnbsp;Integernbsp;=nbsp;0nbsp;nbsp;nbsp;nbsp;Privatenbsp;PageNumbernbsp;Asnbsp;Integernbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintRecordLeavenbsp;Asnbsp;Integernbsp;nbsp;nbsp;nbsp;Privatenbsp;PrintRecordCompletenbsp;Asnbsp;Integernbsp;=nbsp;0nbsp;nbsp;nbsp;nbsp;Publicnbsp;WriteOnlynbsp;Propertynbsp;setPrintFont()nbsp;Asnbsp;System.Drawing.Fontnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Set(ByValnbsp;Valuenbsp;Asnbsp;System.Drawing.Font)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;PrintFontnbsp;=nbsp;Valuenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Endnbsp;Setnbsp;nbsp;nbsp;nbsp;Endnbsp;Propertynbsp;nbsp;nbsp;nbsp;Publicnbsp;WriteOnlynbsp;Propertynbsp;setPrintRecordNumber()nbsp;Asnbsp;Integernbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Set(ByValnbsp;Valuenbsp;Asnbsp;Integer)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;PrintRecordNumbernbsp;=nbsp;Valuenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Endnbsp;Setnbsp;nbsp;nbsp;nbsp;Endnbsp;Propertynbsp;nbsp;nbsp;nbsp;Subnbsp;New(ByValnbsp;TableSourcenbsp;Asnbsp;DataGrid)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;DataGridSourcenbsp;=nbsp;TableSourcenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;DataGridTablenbsp;=nbsp;Newnbsp;DataTablenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;DataGridTablenbsp;=nbsp;DataGridSourc


VB.NET 不使用控件获取某网页源代码

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyClient As Net.WebClient = New Net.WebClient
Dim MyReader As New System.IO.StreamReader(MyClient.OpenRead("http://wap.baidu.com"), System.Text.Encoding.Default)
Dim MyWebCode As String = MyReader.ReadToEnd
Me.RichTextBox1.Text = MyWebCode
MyReader.Close()
End Sub


vb.net中如何获得DataGridView单元格内容

当前单元格指的是 DataGridView 焦点所在的单元格,它可以通过 DataGridView 对象的 CurrentCell 属性取得。
如果当前单元格不存在的时候,返回Nothing(C#是null)[VB.NET]
' 取得当前单元格内容
Console.WriteLine(DataGridView1.CurrentCell.Value)
' 取得当前单元格的列 Index
Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)
' 取得当前单元格的行 Index
Console.WriteLine(DataGridView1.CurrentCell.RowIndex) [C#]
// 取得当前单元格内容
Console.WriteLine(DataGridView1.CurrentCell.Value);
// 取得当前单元格的列 Index
Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex);
// 取得当前单元格的行 Index
Console.WriteLine(DataGridView1.CurrentCell.RowIndex);
另外,使用 DataGridView.CurrentCellAddress 属性(而不是直接访问单元格)来确定单元格所在的行:DataGridView.CurrentCellAddress.Y 和列: DataGridView.CurrentCellAddress.X 。
这对于避免取消共享行的共享非常有用。


VB怎么获取网页源码

1)使用MICROSOFT INTERNET TRANSFER CONTROL的,代码如下:
Dim strhtml As String
Dim STRURL As String
STRURL="http://www.sijiqing.com"
strhtml = Inet1.OpenURL(STRURL)

2)用System.Net命空间下的HttpWebRequest来取得,代码如下:
Dim url As String=" http://mgxx520.blog.com.cn" ' 网址
Dim httpReq As System.Net.HttpWebRequest  
Dim httpResp As System.Net.HttpWebResponse
Dim httpURL As New System.Uri(url)
httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest)
httpReq.Method = "GET"
httpResp = CType(httpReq.GetResponse(), HttpWebResponse)
httpReq.KeepAlive = False ' 获取或设置一个值,该值指示是否与 Internet资源建立持久连接。
Dim reader As StreamReader = _
New StreamReader(httpResp.GetResponseStream,
System.Text.Encoding.GetEncoding(-0))
Dim respHTML As String = reader.ReadToEnd() 'respHTML就是网页源代码.


VB.NET的API调用

现在我用我所知道的为楼主介绍VB.NET的API调用,请楼主浏览一下,看看行不行。
Windows API就是Windows系统的API函数简称(Application Program Interface,即:应用程序接口函数),它是Windows操作系统提供给各种开发基于Windows平台应用软件的开发语言的一些公用的函数,这些函数一般都比较底层,所以当各种开发语言使用自带的函数或类库已无法解决问题时,调用Windows API函数往往是一种非常直接、有效的解决方法。但由于在程序中调用Windows API函数一般都很复杂,所以对于程序员来说,是否能够灵活的使用Windows API函数,往往也是其水平高低的一个重要标志。但自从微软推出.Net框架以后,各种开发基于.Net平台下的程序语言,如Visual Basic .Net、Visual C#等却很少使用Windows API函数,并且微软公司也不像以前那样,提倡在这些.Net开发语言中使用Windows API函数,其主要的原因如下:

1. .Net框架所附带的类库.Net FrameWork SDK是一个内容丰富、功能强大的软件开发包,各种Windows API函数所实现的各种功能几乎都可以在这个软件开发包中找到与之对应的部分。

2. 微软Visual Basic .Net、Visual C#等目的是编写跨平台的应用程序,如果在Visual Basic .Net、Visual C#等中使用Windows API函数,这也就注定了编写出的程序只能运行于Windows平台之下,而弱化了.NET的跨平台能力。这也就是为什么微软不提倡在.Net平台调用Windows API函数的原因。

虽然微软并不提倡在Visual Basic .Net、Visual C#中调用Windows API函数,但由于目前.Net 框架推出时间较短,.Net FrameWork SDK中提供的类库还并不足以完全替换Windows API函数的所有功能,所以在某些时候,.Net开发语言还是必须要调用Windows API函数。

一.平台调用、托管DLL、非托管DLL简介:

托管DLL就是能够在公共语言运行库(Common Language Runtime,简称CLR)中能够直接引用的,并且扩展名为“DLL”的文件。具体所指就是封装各种命名空间所在的DLL文件,如System.dll等。非托管DLL就是平常所的动态链接库等,其中就包括了封装所有Windows API函数的DLL文件。各种非托管DLL中的函数在公共语言运行库中不能直接被调用,而需要经过.Net框架提供的“平台调用”服务后才可以。

“平台调用”是.Net框架为Visual Basic .Net、Visual C#等.Net开发语言提供的一种服务,用以在托管代码中引入各种非托管DLL中封装的函数(其中包括Windows API函数)。“平台调用”依赖于元数据在运行时查找导出函数并封装其参数。图01公共语言运行库利用“平台服务”调用非托管DLL中的函数的流程图:


图01:“平台服务”的调用非托管函数的流程图

在托管代码中使用“平台调用”服务调用非托管DLL中封装的函数时,“平台服务”将依次执行以下操作:

1. 查找包含该函数所在的DLL文件。

2. 如果找到,则将该DLL文件 加载到内存中。

3. 查找函数在内存中的地址并将其参数推到堆栈上,并封送所需的数据。

4. 将控制权转移给非托管函数。 这样整个函数调用完成。

在Visual Basic .Net中使用“平台调用”服务,申明Windows API函数主要有二种具体的实现方法:

1. 使用DllImport特征类来申明Windows API函数。

2. 使用“Declare”语句来申明Windows API函数。

这二种方法虽有异曲同工之效,但在繁简上却有很大差异,第一种方法申明过程比较复杂,很容易在申明Windows API函数时出错,所以并不提倡。而第二种方法相对简单,并且又保存了以前Visual Basic中的很多语法,所以在平常时大都使用这种方法来申明Windows API函数。

二.VB.Net查看文件中图标的函数及申明Windows API的方法:

Visual Basic .Net要实现查看文件中的图标,目前只使用.Net FrameWork SDK是无法实现这种功能的,正如前面所说,主要是由于.Net FrameWork SDK推出的时间较短,其功能还不可能面面俱到。解决问题的关键是正确使用Windows API函数,其中所涉及到的Windows API函数主要有二个:其一是获得指定文件中的图标数目;其二是从指定文件的指定位置导出图标的Windows句柄。这二个函数都位于“Shell32.dll”文件中,并且函数的入口点都为“ExtractIcon”。下面是在Visual Basic .Net中分别使用DllImport特征类和“Declare”语句申明这二个Windows API函数的具体方法。

(1).使用DllImport特征类来申明Windows API函数:

下面是在Visual Basic .Net中使用DllImport特征类申明二个Windows API函数的具体示例:

'函数ExtractIcon,其功能是是从指定文件的指定位置导出图标的Windows句柄。
< System.Runtime.InteropServices.DllImport ( "Shell32.dll" , EntryPoint := "ExtractIcon" ) > _
Public Function _
ExtractIcon ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As UInt32 ) As System.IntPtr
End Function
'函数Icon_Num,其功能是获得指定文件中的图标数目
< System.Runtime.InteropServices.DllImport ( "Shell32.dll" , EntryPoint := "ExtractIcon" ) > _
Public Function _
Icon_Num ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As Integer ) As Integer
End Function

在使用DllImport特征类申明Windows API函数时,如果申明的函数名称和函数的入口点相同,则可以在申明Windows API函数时,省略定义函数入口点对应的代码,即EntryPoint对象字段对应的代码,这样声明ExtractIcon函数的代码也可以简化为如下所示:

< System.Runtime.InteropServices.DllImport ( "Shell32.dll" ) > _
Public Function _
ExtractIcon ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As UInt32 ) As System.IntPtr
End Function

(2).使用“Declare”语句来申明Windows API函数:

使用“Declare”语句的确比使用DllImport特征类要简单了许多,下面是在Visual Basic .Net中使用“Declare”语句来声明上述二个Windows API函数的具体方法:

Declare Auto Function ExtractIcon Lib "Shell32.dll" Alias "ExtractIcon" ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As UInt32 ) As System.IntPtr
'声明ExtractIcon函数
Declare Auto Function Icon_Num Lib "Shell32.dll" Alias "ExtractIcon" ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As Integer ) As Integer
'声明Icon_Num函数

在Visual Basic .Net中声明Windows API函数时,“Declare”语句中Alias关键字的作用相当于使用DllImport特征类中的EntryPoint对象字段。同样在使用“Declare”语句声明Windows API函数时,如果声明的函数和函数的入口点相同,也可以省略Alias关键字对应的代码,所以ExtractIcon函数也可以简化为如下:

Declare Auto Function ExtractIcon Lib "Shell32.dll" ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As UInt32 ) As System.IntPtr

下面就结合一个示例的编写过程来掌握的这二个Windows API函数的具体使用方法,这个示例的作用就是读取指定文件中的图标数目,并显示文件中的图标。

三.本文中程序的编写、调试和运行环境:

(1).视窗2000高级服务器版。

(2).Visual Studio .Net 2003企业结构设计版,.Net FrameWork SDK版本号4322。

四.Visual Basic .Net读取文件中的图标的实现步骤:

下面介绍的示例,其功能读取指定文件中包含的图标数目,并把这些图标全部显示出来。下面是这个示例的实现步骤:

1. 启动Visual Studio .Net。

2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

3. 将【项目类型】设置为【Visual Basic项目】。

4. 将【模板】设置为【Windows应用程序】。

5. 在【名称】文本框中输入【Visual Basic .Net查看文件中的图标】。

6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在【E:\VS.NET项目】目录中就产生了名称为【Visual Basic .Net查看文件中的图标】文件夹,里面存放着【Visual Basic .Net查看文件中的图标】项目的所有文件。具体如图02所示:


图02:【Visual Basic .Net查看文件中的图标】项目的【新建项目】对话框

7. 选择菜单【项目】|【添加新项】,在弹出的对话框中的【模板】设置为【模块】,【名称】文本框设置为【Module1.vb】后。单击【打开】按钮,则在项目中增加了一个模板文件,名称为【Module1.vb】。

8. 把Visual Stuido .Net的当前窗口切换到Module1.vb的代码编辑窗口,并在其Module1的代码区中添加下列代码,下列代码是用二种方式声明二个Windows API函数:

< System.Runtime.InteropServices.DllImport ( "Shell32.dll" ) > _
Public Function _
ExtractIcon ( ByVal src As System.IntPtr , ByVal strFileName As String , ByVal uiIconIndex As UInt32 ) As System.IntPtr
End Function
'声明ExtractIcon函数
Declare Auto Function Icon_Num Lib "Shell32.dll" Alias "ExtractIcon" ( ByVal src As System.IntPtr , ByVal strFileName As String , ByVal uiIconIndex As Integer ) As Integer

9. 把Visual Studio .Net的当前窗口切换到Form1窗体的设计查看,并从【工具箱】中的【Windows窗体】选项卡中拖入下列组件到Form1窗体:

四个Label组件,其中二个用以显示提示信息,另外二个分别用以显示选择的文件名称和这个文件中包含的图标数目。

一个ListView组件,利用其显示大图标的属性用以显示选定文件中的图标。

一个OpenFileDialog组件,用以选择要查看图标的文件名称。

一个ImageList组件,它起的是桥梁的作用,首先把从文件中导出的图标存放到这里,然后再提供ListView组件显示出来。

一个Button组件。

10. 按照表01中数值来设定设定组件的主要属性:

组件类型 组件名称 属性 设置结果
Form Form1 Text VB.NET查看文件中的图标
Form1 MaximizeBox False
Form1 MinimizeBox False
Form1 FormBorderStyle FixedSingle
ListView ListView1 ImageList1 LargeImageList
ListView1 MultiSelect False
ListView1 Size Size ( 380 , 208 )
Button Button1 Text 选择文件
Button1 FlatStyle Flat
ImageList ImageList1 Size Size ( 32 , 32 )
ImageList1 TransparentColor Color.Transparent
Label Label1 Text 文件名称:
Label2 Text 图标数目:
Label3 Text ""
Label4 Text "0"
表01:【Visual Basic .Net查看文件中的图标】项目窗体中各组件的主要属性设定数值表

并按照图02中各组件的位置、大小和排列方式来调整窗体中各个组件:


图02:【Visual Basic .Net查看文件中的图标】项目的设计界面

11. 把Visual Studio .Net当前窗口切换到Form.vb的代码编辑窗口,并用下列代码替换Form1.vb中的Button1组件的Click事件的处理代码,下列代码是在Button1组件的Click事件中处理查看文件中图标的功能,具体如下:

Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
If OpenFileDialog1.ShowDialog ( ) = DialogResult.OK Then
'清除组件中的所有项目
ListView1.Items.Clear ( )
ImageList1.Images.Clear ( )
Dim sfName As String = OpenFileDialog1.FileName
Label3.Text = sfName
Dim iIcon_Num As Integer = Icon_Num ( IntPtr.Zero , sfName , -1 )
'显示文件中的图标数目
Label4.Text = iIcon_Num.ToString ( )
Dim i As Integer
For i = 0 To iIcon_Num - 1 Step 1
'强制实现int到uint类型转换
Dim j As UInt32
j = System.Convert.ToUInt32 ( i )
Dim hIcon As System.IntPtr = ExtractIcon ( IntPtr.Zero , sfName , j )
'在imageList1组件中加入当然提取的图标
ImageList1.Images.Add ( Icon.FromHandle ( hIcon ).ToBitmap ( ) )
'在ListView组件中加入一个项目
ListView1.Items.Add ( "第" + ( i + 1 ).ToString ( ) + "个图标" )
'把加入项目的图象索引指向刚才加入图标在imagList1组件中的索引,从而显示图标
ListView1.Items ( i ).ImageIndex = i
Next i
End If
End Sub

12. 至此,在上述步骤都正确执行后,【Visual Basic .Net查看文件中的图标】项目的全部工作就完成了。单击快捷键F5就可以运行程序,此时单击【选择文件】按钮选择文件后,程序就能够读取这个文件中的图标及其数目,并显示出来了。具体如图03所示:


图03:【Visual Basic .Net查看文件中的图标】项目的运行界面

五.总结:

解决Visual Basic .Net查看文件中的图标的关键并非是使用.Net框架中提供的类库,而是使用Windows的API函数。虽然这与利用Visual Basic .Net开发跨平台程序的初衷相违背,但的确不失为一种解决问题的方法。有些时候通过Windows API函数能够快捷、方便的解决实际问题,而这往往是只使用.Net FrameWork SDK所望尘莫及的,但随着.Net FrameWork SDK内容的不断丰富,各种新的组成部分和新的功能不断加入,可以预见的是,在未来的.Net FrameWork SDK中必将拥有可以替换本文中介绍的二个Windows API函数的组成部分。


求vb代码,vb实现以广播的形式发送信息到局域网内部,另外加一个接收的程序。

这代码发送和接收的MSDN6.0中有,在索引中键入winscok 控件,点使用 Winsock 控件其中关于UDP 协议是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是两者之间没有明确的连接。另外,单次传输的最大数据量取决于具体的网络。要创建一个 UDP 伙伴,请按照以下步骤执行: 创建一个新的 Standard EXE 工程。将缺省的窗体的名称修改为 frmPeerA。将窗体的标题修改为“Peer A”。在窗体中放入一个 Winsock 控件,并将其命名为 udpPeerA。在“属性”页上,单击“协议”并将协议修改为 UDPProtocol。在窗体中添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。为窗体增加如下的代码。Private Sub Form_Load()'控件的名字为 udpPeerAWith udpPeerA'重点:必须将 RemoteHost 的值'修改为计算机的名字。.RemoteHost= "PeerB" .RemotePort = 1001 '连接的端口号。.Bind 1002 '绑定到本地的端口。End WithfrmPeerB.Show '显示第二个窗体。End SubPrivate Sub txtSend_Change()'在键入文本时,立即将其发送出去。udpPeerA.SendData txtSend.TextEnd SubPrivate Sub udpPeerA_DataArrival _(ByVal bytesTotal As Long)Dim strData As StringudpPeerA.GetData strDatatxtOutput.Text = strDataEnd Sub要创建第二个 UDP 伙伴,请按照以下步骤执行:在工程中添加一个标准窗体。将窗体的名字修改为 frmPeerB。将窗体的标题修改为“Peer B”。在窗体中放入一个 Winsock 控件,并将其命名为 udpPeerB。在“属性”页上,单击“协议”并将协议修改为“UDPProtocol”。在窗体上添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。在窗体中添加如下的代码。Private Sub Form_Load()'控件的名字为 udpPeerB。With udpPeerB'重点:必须将 RemoteHost 的值改为'计算机的名字。.RemoteHost= "PeerA".RemotePort = 1002 '要连接的端口。.Bind 1001 '绑定到本地的端口上。End WithEnd SubPrivate Sub txtSend_Change()'在键入后立即发送文本。udpPeerB.SendData txtSend.TextEnd SubPrivate Sub udpPeerB_DataArrival _(ByVal bytesTotal As Long)Dim strData As StringudpPeerB.GetData strDatatxtOutput.Text = strDataEnd Sub


求VB局域网聊天源代码

给你个udp多播例子,广播不是很清楚,呵呵
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Inherits System.Windows.Forms.Form
Dim port As String
Dim ipadd As String
Dim ipend As IPEndPoint
Dim sendudp As New UdpClient()

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
Dim ipadress As IPAddress

ipadress = IPAddress.Parse(TextBox1.Text)
'sendport = Int32.Parse(TextBox2.Text)
'ipend = New IPEndPoint(ipadress, sendport)
Try


sendudp.JoinMulticastGroup(ipadress)
MessageBox.Show("启动完成!")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub


求助!!! android中的扫雷游戏的源代码,各位大侠帮帮忙,我是新手,最好有注释的,万分感谢!!!

" 打开windows附带的扫雷游戏后
输入[x][y][z][z][y][Enter][Shift]
然后当你的鼠标移动到有地雷的那个小方块时
桌面左上角的一个dot会变成黑色
还可以直接用记事本修改c:windows下的winmine.ini文件。
Time1=999――――-(初级时间)
Time2=999――――-(中级时间)
Time3=999――――-(高级时间)
Name1=匿名――――(初级姓名)
Name2=匿名――――(中级姓名)
Name3=匿名――――(高级姓名)
另外,点击左键,按Esc时间还可以停止哦! "


VB中用什么代码打印文件啊,语句怎么写啊,

VB中的几种打印方法

1. 采用Visual Basic 提供的简单打印函数PrintForm 方法。应用程序窗体的PrintForm 方法时,Visual Basic 把窗体的位图送到当前打印机。该方法的优点在于它几乎不需要任何编程,但也有很大缺陷。最为突出的是当低分辨率图形在高分辨率打印机上打印时,其结果令人无法满意,会产生锯齿。下面代码将在打印机上打印窗体。

Private Sub Command1_Click() ' 用PrintForm 打印
Me.PrintForm ' 打印窗体的可见区域
End Sub
2. 用Printer 对象进行高分辨率输出。但要想产生复杂的打印输出,编程较为烦琐。Printer 对象代表系统缺省的打印机,Printer 对象支持许多由窗体和图形框所支持的属性和方法,三种对象都有画线和画方框。应用程序可用以下代码在Printer 对象上画出一平方英寸的方框。它离左上角二英寸。注意:打印机以twips 来测量距离。每英寸有1440 个twips。

Printer.Line(2 *1440,2 *1440) -Step(1440,1440), ,B
打印机、从窗体和图形框都有Circle、PaintPicture、Print、Pset、TextHeight、TextWidth 方法。使用这些方法,应用程序可以为打印机生成高分辨率输出。

打印文本直接用Print 方法,见下列代码:

Printer.Print "Hello,China ComputerWorld!" ' 打印字符串

Printer 对象还有一些窗体和图形框都没有方法:

NewPage 告诉打印机,程序对当前输出页的发送已经结束,Printer 对象应开始新的一页。

EndDoc 告诉VB,程序创建文档结束,VB 应将它发送到物理打印机上打印。

KillDoc 取消当前打印作业。应用程序应该终止由EndDoc 和KillDoc 所设定的每个打印作业。

Zoom 属性用于定义打印输出的缩放因子。

Copies 属性用于定义打印的副本数目。

3. 采用直接将数据传送打印机的方法进行打印输出。有两种方法将数据送往打印机。第一种是用Print #方法,就像将数据写入一个文件一样。另一种方法写端口,但不是送文本,而是送特定的PCL 语言,PCL 表示打印控制语言,它是一种特殊语言,用转义代码来控制打印机的具体动作。因为此方法太烦琐,本文不做太多介绍。

4. 如果你在编程时用到了RichTextBox 控制,那么你可以使用该控件的SelPrint 方法来打印,使用非常简单。下面一段代码即用RichTextBox 控件的SelPrint 方法来完成打印。

Private Sub Command3_Click() 'SelPrint 方法
CommonDialog1.Flags=cdlPDReturnDC +cdlPDNoPageNums
If RTF1.SelLength = 0 Then
'RTF1 为窗体的RichTextBox 控制
CommonDialog1.Flags = CommonDialog1.Flags
+cdlPDAllPages
Else
CommonDialog1.Flags = CommonDialog1.Flags +
cdlPDSelection
End If
CommonDialog1.CancelError = True
On Error Resume Next
CommonDialog1.ShowPrinter
If Err.Number = cdlCancel Then Exit Sub
If Err.Number 0 Then
Beep
MsgBox "Error printing file."
&vbCrLf +Err.Description, vbOKOnly +vbExclamation,
“Printing Error!"
Exit Sub
End If
Printer.Print ""
RTF1.SelPrint CommonDialog1.hDC
' 打印RTF1 控件的可见区域
End Sub
上面代码先进行打进设置,再进行打印。如果不需要设置,采用下面代码更为简单:

RTF1.SelPrint Printer.hDC
' 打印RTF1 控件的可见区域
5. 可以在VB 中调用Word 97 提供的OLE 自动化服务,利用Word 97 强大的打印功能来完成VB 打印,笔者认为这是最令人满意的方法。下面代码说明VB 如何与Word 集成。

Private Sub Command4_Click() ' 调用Word 打印
Dim objWord As Object
Const CLASSOBJECT = "Word.Application"
On Error GoTo objError
Set objWord = CreateObject(CLASSOBJECT)
objWord.Visible = True
objWord.Documents.Add
With objWord
.ActiveDocument.Paragraphs.Last.Range.Bold = False
.ActiveDocument.Paragraphs.Last.Range.Font.Size =20
.ActiveDocument.Paragraphs.Last.Range.Font.Name =
"黑体"
.ActiveDocument.Paragraphs.Last.Range.Font.ColorIndex==4
.ActiveDocument.Paragraphs.Last.Range.Text =
"我是计算机世界读者!"
End With
Clipboard.Clear
Clipboard.SetText
"通过剪切板向WORD 传送数据!"
objWord.Selection.Paste
objWord.PrintPreview = True ' 预览方式
'objWord.PrintOut' 执行打印
'objWord.Quit' 退出Word
Exit Sub
objError:
If Err 429 Then
MsgBox Str $(Err) &Error $
Set objWord = Nothing
' 不能创建Word 对象则退出
Exit Sub
Else
Resume Next
End If
End Sub
6. 用VC 编制DLL 模块完成打印。在VB 中调用该模块,用混合编程方法进行打印输出。因涉及VC 编程比较烦琐,这里不再讨论。


能给我发个VB与三菱PLC通讯的源代码实例吗,非常感谢啊

得说明是什么型号的PLC啊,串口还是网口,VB6还是VB.NET?算了,写段代码,VB.NET与Q系列以太网通讯的:Imports System.NetImports System.Runtime.InteropServicesPublic Class Form1 Dim Handle1 As Int32 Dim EntLink1 As Boolean Dim ScanCount1 As Long Dim PLC As New EntQsPlc_Asc.PlcClient'EntQsPlc_ASC.DLL是Q系列以太网通讯组件 Public Declare Function timeGetTime Lib "winmm.dll" () As UInt32 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.CenterToScreen() cmbReadMry.Items.Clear() cmbReadMry.Items.Add("X") cmbReadMry.Items.Add("Y") cmbReadMry.Items.Add("M") cmbReadMry.Items.Add("D") cmbReadMry.Items.Add("R") cmbReadMry.Items.Add("Z") ' cmbWriteMry.Items.Clear() cmbWriteMry.Items.Add("X") cmbWriteMry.Items.Add("Y") cmbWriteMry.Items.Add("M") cmbWriteMry.Items.Add("D") cmbWriteMry.Items.Add("R") cmbWriteMry.Items.Add("Z") ' cmbBitMry.Items.Clear() cmbBitMry.Items.Add("X") cmbBitMry.Items.Add("Y") cmbBitMry.Items.Add("M") ' cmbReadType.Items.Clear() cmbReadType.Items.Add("INT16") cmbReadType.Items.Add("UINT16") cmbReadType.Items.Add("DINT32") cmbReadType.Items.Add("HEX32") cmbReadType.Items.Add("REAL32") cmbReadType.Items.Add("BIN16") ' cmbWriteType.Items.Clear() cmbWriteType.Items.Add("INT16") cmbWriteType.Items.Add("UINT16") cmbWriteType.Items.Add("DINT32") cmbWriteType.Items.Add("HEX32") cmbWriteType.Items.Add("REAL32") cmbWriteType.Items.Add("BIN16") cmbReadMry.SelectedIndex = 3 cmbWriteMry.SelectedIndex = 3 cmbBitMry.SelectedIndex = 2 cmbReadType.SelectedIndex = 0 cmbWriteType.SelectedIndex = 0 lstRead.Items.Clear() txtWrite.Text = "" ' cmbCmdType.SelectedIndex = 0 End Sub Private Sub butLink_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butLink.Click Dim re As Short Dim restr As String = "" re = PLC.EntLink(Trim(txtLocalIP.Text), Val(txtLocalPort.Text), Trim(txtRemoteIP.Text), Val(txtRemotePort.Text), "DEMO", Handle1, 1000, CBool(cmbCmdType.SelectedIndex)) txtReLink.Text = re.ToString If re = 0 Then EntLink1 = True MsgBox("PLC联接成功! ") Else EntLink1 = False MsgBox("PLC联接失败: " & restr) End If End Sub Private Sub butClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butClose.Click Dim re As Short If Not EntLink1 Then MsgBox("还未与PLC建立联接!") Exit Sub End If re = PLC.DeLink(Handle1) txtReClose.Text = re.ToString End Sub Private Sub butRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butRead.Click Dim re As Short Dim i As Short Dim RD() As Object ReDim RD(Val(txtReadCnt.Text - 1)) If Not EntLink1 Then MsgBox("还未与PLC建立联接!") ' Exit Sub End If Dim mry As EntQsPlc_Asc.PlcClient.PlcMemory = cmbReadMry.SelectedIndex + 1 Dim typ As EntQsPlc_Asc.PlcClient.DataType = cmbReadType.SelectedIndex + 1 re = PLC.CmdRead(Handle1, mry, typ, CInt(txtReadAdd.Text), CUShort(txtReadCnt.Text), RD) txtReRead.Text = re.ToString lstRead.Items.Clear() For i = 0 To UBound(RD) Step 1 If Not IsNothing(RD(i)) Then lstRead.Items.Add(RD(i)) Next i If re 0 Then Timer1.Enabled = False butScan.Text = "Cycle R/W" End If End Sub Private Sub butWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butWrite.Click Dim re As Short Dim i As Short Dim temp() As String Dim WD() As Object If Not EntLink1 Then MsgBox("还未与PLC建立联接!") Exit Sub End If ReDim WD(Val(txtWriteCnt.Text) - 1) temp = Split(txtWrite.Text, vbCrLf) For i = 0 To UBound(WD) Step 1 If i > UBound(temp) Then WD(i) = 0 Else WD(i) = Trim(temp(i)) End If Next i Dim mry As EntQsPlc_Asc.PlcClient.PlcMemory = cmbWriteMry.SelectedIndex + 1 Dim typ As EntQsPlc_Asc.PlcClient.DataType = cmbWriteType.SelectedIndex + 1 re = PLC.CmdWrite(Handle1, mry, typ, CInt(txtWriteAdd.Text), CUShort(txtWriteCnt.Text), WD) txtReWrite.Text = re.ToString If re 0 Then Timer1.Enabled = False butScan.Text = "Cycle R/W" End If End Sub Private Sub butScan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butScan.Click If Not EntLink1 Then MsgBox("还未与PLC建立联接!") Exit Sub End If Timer1.Enabled = Not Timer1.Enabled If Timer1.Enabled Then ScanCount1 = 0 butScan.Text = "Stop R/W" Else butScan.Text = "Cycle R/W" End If End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Enabled = False Dim tim As Integer = timeGetTime If Not EntLink1 Then MsgBox("还未与PLC建立联接!") Exit Sub End If ' Call butRead_Click(Nothing, Nothing) Call butWrite_Click(Nothing, Nothing) ' If (Val(txtReRead.Text) < 0) Or (Val(txtReWrite.Text) < 0) Then butScan.Text = "Cycle R/W" Exit Sub Else ScanCount1 += 1 txtScanCnt.Text = ScanCount1 txtScanPrd.Text = (timeGetTime - tim) & "ms" End If Timer1.Enabled = True End Sub Private Sub butBitTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butBitTest.Click If Not EntLink1 Then MsgBox("还未与PLC建立联接!") Exit Sub End If Dim rd As Boolean Dim re As Short Dim mry As EntQsPlc_Asc.PlcClient.PlcMemory = cmbBitMry.SelectedIndex + 1 re = PLC.Bit_Test(Handle1, mry, CUShort(txtBitAdd.Text), rd) txtBitTest.Text = rd txtReBit.Text = re End Sub Private Sub butBitSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butBitSet.Click If Not EntLink1 Then MsgBox("还未与PLC建立联接!") Exit Sub End If Dim re As Short re = PLC.Bit_Set(Handle1, cmbBitMry.SelectedIndex + 1, Val(txtBitAdd.Text)) txtReBit.Text = re End Sub Private Sub butBitRst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butBitRst.Click If Not EntLink1 Then MsgBox("还未与PLC建立联接!") Exit Sub End If Dim re As Short re = PLC.Bit_Reset(Handle1, cmbBitMry.SelectedIndex + 1, Val(txtBitAdd.Text)) txtReBit.Text = re End SubEnd Class


asp.net源码怎么用啊

解决办法有三个:
1. 最方便的,修改附属(非启动项目)Asp.net网站或web应用程序的web.config文件,比如我的解决方案中有两个asp.net网站 web1和web2。web1作为启动项目。那么我就要修改web2的 web.config文件。打开web2的web.config文件,删除节和节。注意,是删除,不是注释,注释是不起作用的。然后就可以用F5调试了。这时候web2就作为web1的附属项目。
2. 高手用的,因为删除那两个节的后果,我目前还不清楚。但肯定是有负作用的。那就尽量不要删除,错误提示说需要把非启动项目在IIS中配置成虚拟目录,就照办好了。修改启动项目的属性,“启动选项,把使用默认web服务器,改成本地IIS,路径填http://localhost”,非启动项目就改成http://localhost/xxx/。如果项目全是Asp.net网站,那直接F5不管错误提示也可以,如果项目有web应用程序,这个时候F5是不行的。只好放弃调试。反正错误提示已经不影响正常编写代码和最终发布项目。
3. 根本解决办法,重新考虑项目的架构,我当初遇到这个问题是因为需要每个非启动项目都可以独立运行,方便将来配置二级域名,其实实现这种目的有很多种方法,比如建多个解决方案,发布的时候发布到一个目录里。主要是在项目架构上多作思考,尽量避免同一个解决方案下存在多个asp.net网站或web应用程序的问题


上一篇:cf无后座

下一篇:发包服务器