vb net中级篇_第1页
vb net中级篇_第2页
vb net中级篇_第3页
vb net中级篇_第4页
vb net中级篇_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实例 53:获得拨号网络项目实例说明在本实例中, 所示。行结果如图 53-1制作一个能够取得本地计算机上的拨号网络的项目的应用程序。图 53-1 运行结果技术要点l表内容l添加到列表框实现过程 新建项目打开 Visual Studio.NET,选择“新建项目”,在项目类型窗口中选择“Visual Basic 项目”,在模板窗口中选择 “Windows 应用程序”,在名称域中输入“GetDialList”,然后选择保存路径。单击“确认”。 添加控件和设置属性向窗体上添加一个 ListBox 控件。将窗体的 Text 属性改为“获得拨号网络项目”,其余属性都保持默认。 添加代码Private De

2、clare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA"(ByVal hKey As Integer, ByVal lpSubKey As String, ByRef phkResult As Integer) As IntegerPrivate Declare Function RegKey Lib "advapi32.dll" (ByVal hKey As Integer) As IntegerPrivate Declare Function RegEnumK

3、ey Lib "advapi32.dll" Alias "RegEnumKeyA"(ByVal hKey As Integer, ByVal dwIndex As Integer, ByVal lpName As String, ByVal cbName As Integer) As IntegerConst HKEY_CURRENT_USER As Integer = &H80000001 Const ERROR_NO_MORE_ITEMS As Short = 259 Const ERROR_SUCCESS As Short = 0Priva

4、te Sub Form1_Load(ByVal even MyBase.LoadDim hKey As Integer Dim i As Integerder As System.Object, ByVal eventArgs As System.EventArgs) HandlesDim astr As VB6.FixedLengthString = New VB6.FixedLengthString(256)If RegOpenKey(HKEY_CURRENT_USER, "RemoteAccessProfile", hKey) = ERROR_SUCCESS Then

5、 While RegEnumKey(hKey, i, astr.Value, 256) = ERROR_SUCCESSList1.Items.Add(astr.Value)中 级 篇 167i = i + 1 End WhileReg End IfEnd Sub 运行程序Key(hKey)单击菜单“调试|启动”或单击小结图标运行程序。本实例通过表中有关拨号网络的项目,然后将这些项目添加到框中,这就是本程序的思路。实例 54:倒计时程序实例说明本实例将制作一个倒计时程序。行时,始终位于在任何窗口的最前面,双击窗体结束应用程序。行结果如图 54-1 所示。可以在窗体上单击鼠标右键,在弹出的菜单中选

6、择“设置倒计时”,设置界面如图 54-2 所示。图 54-1 运行结果图 54-2 设置倒计时界面技术要点llll保持窗体最前 倒计时TimeSerial ()函数SetWindowPos()API 函数实现过程 新建项目打开 Visual Studio.NET,选择“新建项目”,在项目类型窗口中选择“Visual Basic 项目”,在模板窗口中选择 “Windows 应用程序”,在名称域中输入“ReverseCount”,然后选择保存路径。单击“确认”。 添加控件、菜单和窗体为当前窗体添加两个 Label 控件和两个 Timer 控件。其中一个 Timer 控件一个 Label 控件在直循

7、环”。利移动;另一个 Timer 控件时间的显示。添加一个 Context控件并新建菜单“设置倒计时”和“用菜单“项目|添加 Windows 窗体”,为当前项目添加一个窗体 Form2,给 Form2 添加四个 Label 控件,用于说明之用;两个 Button 按钮和三个 TextBox 控件。最后通过菜单“项目|添加模块”为当前项目添加一个模块。 设置属性切换到“属性栏”,对窗体及窗体上的控件进行设置属性。详细情况如表 54-1 和表 54-2 所示。表 54-1 窗体 Form1 及控件的属性值表 54-2 窗体 Form2 及控件的属性值窗体/控件属性值Form2BorderStyle

8、0-NoneStartUpPositonCenterScreen窗体/控件属性值Form1FormBorderStyleFixedSingleContextContext1Label1Text倒计时Timer1Interval100Timer2Interval1000中 级篇169 添加代码Module Module1' 这是在模块中添加的代码Public hours As Short Public minutes As Short Public seconds As Short Public revtime As Date'此API函数用来使某个窗口位于所有窗口之上Publi

9、c Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As IntegerEnd Module' 下面这些代码是在窗体Form1中添加的' 双及窗体,结束应用程序Private Sub Form1_

10、DoubleClick(ByVal even Handles MyBase.DoubleClickder As System.Object, ByVal eventArgs As System.EventArgs)Me. End Sub ' 启动(),使程序位于任何窗体的上方Private Sub Form1_Load(ByVal even MyBase.LoadMe.TopMost = True End Sub' 开始倒计时,并显示出来Private Sub Timer1_Tick(ByVal even Timer1.Tickder As System.Object, ByV

11、al eventArgs As System.EventArgs) Handlesder As System.Object, ByVal eventArgs As System.EventArgs) Handlesrevtime = DateAdd(Microsoft.VisualBasic.DateInterval.Second, -1, revtime)Label2.Text = Format(revtime, "hh") & ":" & Format(revtime, "mm") & ":&qu

12、ot; & Format(revtime, "ssEnd Sub Private SubItem1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles1.ClickForm2.DefInstance.ShowDialog() End SubPrivate SubItem2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles2.ClickMe. End Sub()' 下面这些代码是在窗体Form2中添加的Pr

13、ivate Sub Button1_Click(ByVal even Button1.Clickhours = Val(Text1.Text) minutes = Val(Text2.Text) seconds = Val(Text3.Text) ' 将输入转化为时间格式der As System.Object, ByVal eventArgs As System.EventAHandlesrevtime = TimeSerial(hours, minutes, seconds)Form1.DefInstance.Label2.Text = Format(revtime, "

14、hh") & ":" & Format(revtime, "mm") & ":" & Format(revtime, "ss")Form1.DefInstance.Timer1.Enabled = True")ItemItemrgs)Text1Text(空)Button1Text更改图片其余控件跟界面一致即可170 中 级 篇Form2.DefInstance.Hide() End SubPrivate Sub Button2_Click(ByVal even B

15、utton2.Clickder As System.Object, ByVal eventArgs As System.EventArgs) HandlesMe. End Sub 运行程序()单击菜单“调试|启动”或单击图标运行程序。小结本实例了一个倒计时程序,它的思路比较简单,就是获得用户输入的时间值,通过定时器每秒钟更新显示一次。它的应用比较广泛,读者可以更改其界面,使其变得更实用、更漂亮。实例 55:串行化数据实例说明在本实例中,利用 VB.NET 向大家展示一个串行化数据的实例。行结果如图 55-1 所示。图 55-1 运行结果技术要点ll串行化的概念进行读写操作实现过程 新建项目打开

16、 Visual Studio.NET,选择“新建项目”,在项目类型窗口中选择“Visual Basic 项目”,在模板窗口中选择“类库”,在名称域中输入“SerializeTest”,然后选择保存路径。单击“确认”。 添加代码Imports System Imports System.IOImports System.CollectionsImports System.Runtime.SerializationImports System.Runtime.Serialization.Formatters.Binary Namespace ClassLibrary1Public Class Se

17、rializeTest Public Shared Sub Main()Console.WriteLine("Create object graph") Dim l As New ArrayListDim x As Integer For x = 0 To 9Console.WriteLine(x) l.Add(x)Next xConsole.Write("Serializing object graph to disk.")Dim s As Stream = File.Open("foo.bin", FileMode.Create,

18、 FileAccess.Dim b As BinaryFormatter = New BinaryFormatter b.Serialize(s, l)Write)s.()Console.WriteLine("Complete.") Console.Write("Deserializing object graph from disk.")Dim r As Stream = File.Open("foo.bin", FileMode.Open, FileAccess.)172 中 级 篇Dim c As New BinaryForma

19、tterDim p As ArrayList = CType(c.Deserialize(r), ArrayList) Console.WriteLine("Complete.")Dim i As Object For Each i In pConsole.WriteLine(i) Next ir.()Console.WriteLine(Microsoft.VisualBasic.ControlChars.CrLf & "Press Return to exit.")Console.End Sub End ClassEnd Namespace 运

20、行程序()单击菜单“调试|启动”或单击图标运行程序。小结串行化是把图式对象转换成为线性字节串行的过程。字节序列可以发送到别处,例如计算机,然后执行序列解码,这样就在主机内存中生成了原来图式对象的克隆。串行化过程在 VB.NET 中是十分容易使用的,而且是开放的,每个 VB6 的程序员都曾经自觉或不自觉地使用过串行化。当任何 ActiveX dll 或者 ActiveX exe 被创建后,都有五个属性可以设置,最后一个 Persistable 属性就是 VB6 中的串行化。VB6 中串行化的过程不需要用户认知,大部发也从来不管串行化做了什么和如何。在 VB.NET 中,有着公共对象库,每个支持.

21、NET 体系的语言都可以通过 System.Runtime.Serialization 的名字空间来理解和使用 VB.NET 的串行化特征。串行化可以替代任何流,象 MemoryStream,NetStream 等,而不仅仅是 FileStream。实例 56:图形移动实例说明在本实例中,使用 VScrollBar 控件和 HScrollBar 控件来图片的移动,我们还可以设置移动的间距大小。行结果如图 56-1 所示。图 56-1 运行结果技术要点l图片移动ll直接拖动图片更改 ScrollBar 控件的移动间距大小实现过程 新建项目打开 Visual Studio.NET,选择“新建项目”

22、,在项目类型窗口中选择“Visual Basic 项目”,在模板窗口中选择 “Windows 应用程序”,在名称域中输入“ScrollBarCtl”,然后选择保存路径。单击“确认”。 添加控件向当前窗体上添加一个 GroupBox 控件,在 GroupBox 控件上放置六个 Label 控件和两个 ComboBox 控件;然后再添加一个 Picture 控件,一个 VScrollBar 控件和一个 HScrollBar 控件和六个 Label 控件。按照图 56-1 的运行结果排列好位置。 设置属性对窗体上的控件进行属性设置。详细情况如表 56-1 所示。表 56-1窗体各控件的属性值窗体/控

23、件属性值PictureBoxPictuuman.jpgComboBox1Items1,2,3,4,5ComboBox1Itmes5,10,20,50其余控件Text跟界面一致174 中 级 篇 添加代码由于空间有限,我们仅列出主要代码,其余代码请看光盘。' 水平滚动条移动时,改变图片的位置Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs)Handles HScrollBar1.Scrolllabel11.Text =

24、HScrollBar1.Value.ToString()hAbsPos = CSng(HScrollBar1.Value - HScrollBar1.Minimum)pictureBox1.Left = HScrollBar1.Right - CInt(hScrollMultiplier * hAbsPos) - pictureBox1.Width End Sub' 更改大间距移动的值Private Sub comboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

25、 Handles comboBox1.SelectedIndexChangedVScrollBar1.LargeChange = Convert.ToInt16(comboBox1.SelectedItem.ToString() HScrollBar1.LargeChange = Convert.ToInt16(comboBox1.SelectedItem.ToString() label11.Text = HScrollBar1.Value.ToString()label12.Text = VScrollBar1.Value.ToString()End Sub' 更改小间距移动的值P

26、rivate Sub comboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboBox2.SelectedIndexChangedVScrollBar1.SmallChange = Convert.ToInt16(comboBox2.SelectedItem.ToString() HScrollBar1.SmallChange = Convert.ToInt16(comboBox2.SelectedItem.ToString() label11.

27、Text = HScrollBar1.Value.ToString()label12.Text = VScrollBar1.Value.ToString()End Sub' 直接拖动图片Private Sub pictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pictureBox1.MouseDowndragging = True' (e.x, e.y) 表示光标相对于图片位置的相对坐标。我们需要将这个值保存下来

28、oldX = e.X oldY = e.YEnd Sub 运行程序单击菜单“调试|启动”或单击图标运行程序。小结本实例通过使用 ScrollBar 控件来图片的显示,这在我们要显示大图片时是很有必要的。通过对本实例的学习,读者能够掌握 ScroollBar 控件的基本使用。实例 57:多彩文本实例说明在本实例中,我们制作一个能够显示多种形式文本的应用程序。行后,即在窗体上的不同区域输出不同的文字。行结果如图 57-1 所示。图 57-1 运行结果技术要点ll设定不同的 Brush 和 Font输出字体实现过程 新建项目打开 Visual Studio.NET,选择“新建项目”,在项目类型窗口中

29、选择“Visual Basic 项目”,在模板窗口中,选择 “Windows 应用程序”,在名称域中输入“GdipText”,然后选择保存路径。单击“确认”。 添加代码Public Sub New() MyBase.New() TextSample = Me InitializeComponent()serifFontFamily = New FontFamily(GenericFontFamilies.Serif) Me.SetStyle(ControlStyles.Opaque, True) Me.SetStyle(ControlStyles.ResizeRedraw, True)Dim

30、backgroundImage As Image '设定背景图片backgroundImage = New Bitmap(System.Reflection.Assembly.GetExecutingAssembly(). GetManifestResourceStream("colorbars.jpg")'新建一个画刷,使用它在背景图片上画图backgroundBrush = New TextureBrush(backgroundImage) '设定文本图片Dim textImage As Image = New Bitmap(System.Ref

31、lection.Assembly.GetExecutingAssembly().176中 级 篇GetManifestResourceStream("marble.jpg") textTextureBrush = New TextureBrush(textImage) '设定要使用字体格式Me.Font = New Font(serifFontFamily, 20) titleFont = New Font(serifFontFamily, 60) textFont = New Font(serifFontFamily, 11) '建立一个阴影画刷title

32、ShadowBrush = New SolidBrush(Color.FromArgb(70, Color.Black)'用设定的字体和画刷输出Japa Try文本japaFont = New Font("MS Mincho", 36)linearGradBrush = New LinearGradientBrush(New Point(0, 0), New Point(0, 45), Color.Blue, Color.Red)Catch ex As ExceptionMessageBox.Show("The Japafont MS Mincho nee

33、ds be present to run the Japapart of thissample" & ControlChars.CrLf & "" & ControlChars.CrLf & "" + ex.Message)doJapa End TrySample = FalseEnd SubProtected Overrides Sub OnPaint(ByVal e As PaintEventArgs) Dim g As Graphics = e.Graphicsg.SmoothingMode = Smoot

34、hingMode.Alias'用texture画刷填充背景,并应用到一个白画布上g.FillRectangle(backgroundBrush,Rectangle)g.FillRectangle(New SolidBrush(Color.FromArgb(180, Color.White),Rectangle)g.DrawString("欢迎大家来到VB.NET的世界!", Me.Font, New SolidBrush(Color.Black), 10, 10) Dim titleText As String = "图形示例"g.DrawStr

35、ing(titleText, titleFont, titleShadowBrush, 15, 25)g.DrawString(titleText, titleFont, textTextureBrush, 10, 20)Dim textToDraw As String = "银河公司"Dim windowCenter As Double = Me.DisplayRectangle.Width / 2 Dim stringSize As SizeF = g.MeasureString(textToDraw, textFont) Dim startPos As Double

36、= windowCenter - (stringSize.Width / 2)g.DrawString(textToDraw, textFont, New SolidBrush(Color.Red), CType(startPos, Single), 10) Dim rectangle1 As RectangleF = New RectangleF(20, 150, 250, 300)g.FillRectangle(New SolidBrush(Color.Gainsboro), rectangle1) g.DrawString(flowedText1, textFont, New Solid

37、Brush(Color.Blue), rectangle1) '输出居中文本Dim rectangle2 As RectangleF = New RectangleF(450, 150, 250, 300) g.FillRectangle(New SolidBrush(Color.Gainsboro), rectangle2)Dim format As StringFormat = New StringFormat() format.Alignment = StringAlignment.Centerg.DrawString(flowedText2, textFont, New Sol

38、idBrush(Color.Blue), rectangle2, Format)'统计输出的字符数Dim characters As Integer = 0 Dim lines As Integer = 0g.MeasureString(flowedText2, textFont, rectangle2.Size, format, characters, lines)Dim whatRenderedText As String = "共输出了" + CType(characters, String) + " 字符和 " + CType(lines

39、, String)+ "行"g.DrawString(whatRenderedText, textFont, New SolidBrush(Color.Black), 400, 440)中 级 篇 177'旋转刚才输出的Japa文本If (doJapaSample) Theng.RotateTransform(-30) g.TranslateTransform(-180, 300) g.DrawString(japaText, japa g.ResetTransform()End If End Sub 运行程序Font, linearGradBrush, 200,

40、140)单击菜单“调试|启动”或单击图标运行程序。小结本实例使用不同的画刷(Brush)和字体(Font),在不同的区域输出不同的文字,并可以旋转文字,而并不需要使用 API 函数。实例 58:开发用户自定义控件实例说明在本实例中将自行制作一个用户自定义控件并在另外的一个应用程序中加以。行后,可以更改其中的内容,然后单击 save 即可。行结果如图 58-1 所示。图 58-1 运行结果技术要点llll定制用户控件界面为用户控件添加属性和过程编译用户控件用户控件实现过程 新建项目打开 Visual Studio.NET,选择“新建项目”,在项目类型窗口中选择“VisualBasic 项目”,在

41、模板窗口中选择“Windows 控件库”,在名称域中输入“CustomControl”,然后选择保存路径。单击“确认”。 添加控件向当前用户控件 UserControl1 上添加五个 Label 控件和五个 TexbBox 控件。 设置属性对用户控件 UserControl1 上的控件设置属性,如表 58-1 所示。表 58-1 各控件的属性值窗体/控件属性值UserControlBackColor&H00C00000Text5TextScrollBars2-VerticalMultiLineTrueLabel1TextIDText1Text中 级 篇 179 添加组件类通过菜单“项目

42、|添加新项”,在弹出的 添加代码在组件类的代码窗口下输入下列代码。Imports SystemImports System.Windows.Forms Imports System.Drawing框中选择“组件类”,在名称栏中输入 Customer,单击“确定”。Namespace Microsoft.Samples.WinForms.VB.CustomerControl Public Class CustomerControlInherits System.Windows.Forms.UserControl Private customer1 As CustomerPublic Sub Ne

43、w() MyBase.New()' Required by the Windows Forms Designer InitializeComponent()' TODO: Add any constructor code after InitializeComponent call End SubPublic Property Customer() As Customer GetReturn customer1 End GetSet(ByVal Value As Customer) customer1 = Value LoadCustomer()End Set End Prop

44、ertyPublic Sub AcceptChanges() customer1.Title = textBoxTitle.Textcustomer1.FirstName = textBoxFirstName.Text customer1.LastName = textBoxLastName.Text customer1.Address = textBoxAddress.TextEnd SubPublic Sub RejectChanges() LoadCustomer()End SubPrivate Sub LoadCustomer() textBoxID.Text = customer1.

45、ID textBoxTitle.Text = customer1.TitletextBoxFirstName.Text = customer1.FirstName textBoxLastName.Text = customer1.LastName textBoxAddress.Text = customer1.AddressEnd SubPublic Overloads Overrides Sub Dispose() MyBase.Dispose()End Sub End Class其余Label、TextBox 控件Text跟界面一致180 中 级 篇End Namespace 测试用户控件

46、右键单击“解决方案”,选择“添加|新建项目”,为解决方案添加一个测试用户控件的项目。并在窗体上添加一个 CustomerControl 控件和两个 Button 控件。 添加测试代码'这些必不可少Imports SystemImports System.ComponentM Imports System.Drawing Imports System.Windows.FormsImports Microsoft.Samples.WinForms.VB.CustomerControl Imports Microsoft.VisualBasic.ControlCharsNamespace M

47、icrosoft.Samples.WinForms.VB.HostApp Public Class HostAppInherits System.Windows.Forms.Form Public Sub New()MyBase.New()HostApp = Me'This call is required by the Windows Forms Designer. InitializeComponent()'TODO: Add any initialization after the InitializeComponent() callCustomerControl1.Cu

48、stomer = Customer.Customer()' Set the minimum form size to thesize + the height of the title barMe.MinimumSize = New Size(400, (373 + SystemInformation.TextHeight)End Sub'Form overrides dispose to clean up the component list. Public Overloads Overrides Sub Dispose()MyBase.Dispose() component

49、s.Dispose()End SubPrivate Sub buttonCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles buttonCancel.ClickCustomerControl1.RejectChanges() End SubPrivate Sub buttonSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles buttonSave.ClickCustomerControl1.AcceptCha

50、nges()MessageBox.Show("Customer Changes Saved: " & CrLf & CustomerControl1.Customer.ToString) End Sub<STATh()> Shared Sub Main()Application.Run(New HostApp() End SubEnd Class'HostApp End Namespace 运行程序单击菜单“调试|启动”或单击图标运行程序。中 级 篇 181小结我们在本实例中件发布即可。了一个 AcitveX 控件,此控件具有定时提示的作

51、用。读者可以自行开发控件,最后将该控实例 59:连接数据库(一)实例说明下面,利用 VB.NET 自行创建接数据库的应用程序,其运行结果如图 59-1 所示。图 59-1 运行结果技术要点lADO.NETlSqlConnection 和 Sqld实现过程 新建项目打开 Visual Studio .NET7.0,选择“新建项目”,在项目类型窗口中,选择“Visual Basic 项目”,在模板窗口中, 选择“ASP.NET Web 应用程序”,在名称域中输入“adooverview3”,然后选择保存路径。单击确认。 添加代码Imports System Imports System.DataI

52、mports System.Data.Sqlnamespace HowTo.Samples.ADONET public class adooverview3public shared sub Main()Dim myadooverview3 as adooverview3 myadooverview3 = new adooverview3() myadooverview3.Run()end subpublic sub Run()Dim myer as SqlDataerDim mySqlConnection as SqlConnectionDim mySql'设置数据库的连接d as

53、SqldmySqlConnection = new SqlConnection("server=(local)NetSDK;uid=QSUser; pwd=QSPassword;database=northwind")mySql tryd = new Sqld("select * from customers", mySqlConnection)'输出字段名称mySqlConnection.Open()myer = mySqld.Executeer()Console.Write("Customer ID")中级 篇 183Co

54、nsole.WriteLine("Company Name") '输出do while (myer.()Console.Write(myer("CustomerID").ToString() + "")Console.WriteLine(my loopcatch e as Exceptioner("CompanyName").ToString()Console.WriteLine(e.ToString()finallyif Not (my myend ifer is Nothing) ()er.if (my

55、SqlConnection.State = ConnectionState.Open)mySqlConnection. end ifend try end subend classend namespace 运行程序()打开“开始|程序|Microsoft Visual Studio.NET7.0|Visual Studio.NET Tools|Visual Studio.NET运行之后输入 vbc adooverview3.vb。即可生成可执行文件。小结d Prompt”,ADO.NET 是 ADO 数据模型的升级版本,它是为了适应 Web 不断增长的规模而设计的。ADO.NET 仍然使用以

56、前的ADO 对象,像 Connetion 和和 DataAdapter 等。d 对象,同时还增加了一些新的 ADO.NET 对象,如 DataSet、DataerADO.NET 和以前 ADO 数据结构最大的不同就在于DataSet 对象,他跟以前任何的数据都不同。正因为如此,DataSet 函数作为一个库一样。的实体而。在 DataSet 内部,像表、限制、视图等等跟一个数据实例 60:打印和打印预览功能实例说明在本实例中,行结果如图 60-1 所示。制作一个能实现打印和打印预览功能的应用程序。图 60-1 运行结果技术要点ll打印预览功能的实现打印功能的实现实现过程 新建项目打开 Visu

57、al Studio.NET,选择“新建项目”,在项目类型窗口中选择“VisualBasic 项目”,在模板窗口中选择“Windows 应用程序”,在名称域中输入“PrintExample”,然后选择保存路径。单击“确认”。 添加控件和设置属性向当前窗体上添加三个 Button 控件,将他们的 Text 属性改为和界面一致。 添加组件类和要打印的文件通过菜单“项目|添加组件”为当前项目添加一个组件类,并添加一个需要打印的文件。 添加代码'组件类中的代码Imports SystemImports System.ComponentM Imports System.Windows.Forms Imports System.DrawingImports System.Drawing.Printing Imports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5 Public Class TextFilePrintDocumentInherits P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论