Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để nhúng và tài nguyên truy cập bằng cách sử dụng Visual Basic.NET hoặc Visual Basic 2005

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:319291
Đối với một Microsoft C#.NET Phiên bản của bài viết này, xem 319292.
Đối với một phiên bản Microsoft Visual Basic 6.0 này viết, xem 205332.

TRONG NHIỆM VỤ NÀY

TÓM TẮT
Bài từng bước này mô tả cách sử dụng Microsoft Visual Basic .NET hoặc Microsoft Visual Basic 2005 để nhúng tài nguyên như là một phần của hội đồng, và sau đó truy cập vào các nguồn tài nguyên Tại thời gian chạy.

back to the top

Tổng quan

Các.NET Framework có thể gói gọn như một phần của một biên soạn các tập tin gan y Cynulliad. Những tập tin này được gọi là tài nguyên nhúng. Các nguồn tài nguyên đang hoàn toàn riêng biệt từ .resources và .resx có liên quan đến các tập tin với hội đồng. Bạn có thể truy cập các nguồn tài nguyên tại thời gian chạy qua các Lắp ráp lớp học của các System.Reflection không gian tên.

Một lợi thế lớn của nhúng nguồn lực để Manifest là bởi vì các tập tin là một phần của bạn lắp ráp biên dịch, các người dùng không thể vô tình xóa hoặc misplace được quan trọng đối với các tập tin của bạn ứng dụng, mà trong một số trường hợp có thể ngăn chặn việc thi hành chương trình của bạn. Một trong những hạn chế của phương pháp này là bạn không thể lưu bất kỳ thay đổi vào tập tin này để Hội đồng mà không có việc chương trình. Vì chỉ bao gồm tập tin sẽ không thay đổi trong suốt cuộc đời của các ứng dụng của bạn như là một nhúng tài nguyên.

back to the top

Cuộc biểu tình-by-step

Để thêm tài nguyên nhúng vào dự án của bạn, bạn phải đầu tiên thêm các tập tin như là một phần của dự án của bạn. Sau khi bạn đã thêm các tập tin vào dự án của bạn, bạn có thể truy cập và hiển thị các nguồn lực thông qua các System.Reflection không gian tên.

back to the top

Thêm nguồn lực nhúng

Để thêm một tập tin văn bản và tệp hình ảnh cho dự án của bạn như nhúng tài nguyên, hãy làm theo các bước sau:
  1. Tạo một dự án ứng dụng mới cho điều này cuộc biểu tình. Mẫu này được dùng để hiển thị các nguồn lực được truy cập từ hội đồng executing trong thời gian chạy.
  2. Nhấp chuột phải vào tên dự án của bạn, hãy nhấp vào Thêm, sau đó bấm Thêm mục mới.
  3. Trong các Khoản mục mới hộp thoại, chọn Tệp văn bản từ trình đơn, và tên tệp MyTextFile.txt. Khi các tập tin mở ra trong môi trường phát triển tích hợp (IDE), thêm một số văn bản, và sau đó đóng tệp.
  4. Lặp lại bước 1 và 2 thêm một ảnh bitmap vào dự án của bạn, nhưng thay vì chọn Tệp văn bản như loại khoản mục mới, chọn Tệp bitmap, và sau đó thay đổi tên tập tin để MyImage.bmp. Khi hình ảnh mới được mở ra trong IDE, vẽ một cái gì đó trên các hình ảnh này và sau đó đóng tập tin.
  5. Nhấp chuột phải vào tệp văn bản hoặc bitmap, và sau đó chọn Thuộc tính.
  6. Trong các Thuộc tính hộp thoại hộp, xác định vị trí các Xây dựng hành động bất động sản. Theo mặc định, tài sản này được thiết lập để Nội dung. Nhấp vào các tài sản và thay đổi các Xây dựng hành động bất động sản để Nhúng tài nguyên.
  7. Lặp lại bước 4 và 5 cho các tập tin khác.
Sau khi bạn xây dựng dự án, trình biên dịch cho biết thêm đây tập tin để hội đồng của bạn. Trình biên dịch cho biết thêm không gian tên gốc của dự án tên của các nguồn tài nguyên khi nó được bao gồm trong dự án. Ví dụ, nếu không gian tên gốc của dự án của bạn là MyNamespace, các nguồn lực được đặt tên MyNamespace.MyTextFile.txt và MyNamespace.MyImage.bmp.

Lưu ý Tên tệp nguồn lực được chữ. Khi bạn truy cập các nguồn lực, bạn phải sử dụng chính tả chính xác và trường hợp của tên tệp. Nếu bạn làm không sử dụng chính tả chính xác và trường hợp của tên tập tin, các cuộc gọi phương pháp để truy cập các ManifestResourceStream trả về Không có gì, và hệ thống không tăng một ngoại lệ.

Lưu ý Nếu bạn muốn xác minh tên tài nguyên, bạn có thể sử dụng các Microsoft trung gian ngôn ngữ Disassembler (ILDASM) để xem Manifest dữ liệu, mà danh sách các nguồn tài nguyên bao gồm.

back to the top

Truy nhập tài nguyên

Để truy cập vào các nguồn lực mà bạn đã nhúng trong biểu hiện của Hội đồng của bạn, nhập khẩu các System.io và các System.Reflection không gian tên, như sau:
   Imports System.IO   Imports System.Reflection				
Các System.io không gian tên cung cấp định nghĩa của một dòng và các System.Reflection không gian tên xác định các Lắp ráp lớp cung cấp phương pháp để truy cập vào các nguồn lực mà là nhúng vào trong hội đồng của bạn.

Khi bạn tuyên bố sau đây trong các tuyên bố chung khu vực, các nguồn lực từ hội đồng được đọc khi các hình thức được nạp:
   Dim _imageStream As Stream   Dim _textStreamReader As StreamReader   Dim _assembly As [Assembly]				
Lưu ý Để truy cập các Tải sự kiện cho các hình thức trong trình biên tập mã, nhấp đúp vào hình thức trong biên tập viên thiết kế.

Để đọc các tài nguyên từ hội đồng đó là thực hiện mã hiện thời, bạn phải có được một thể hiện của hội đồng đó. Để làm sử dụng này, các GetExecutingAssembly phương pháp của hội đồng, như sau:
   _assembly = [Assembly].GetExecutingAssembly()				
Đọc các thông tin từ các nguồn lực đến một dòng được thực hiện với một phương pháp gọi đến GetManifestResourceStream. Các tham số được thông qua với phương pháp này là tên của các nguồn tài nguyên đó là để được truy cập. Hai nguồn tài nguyên sau đó đọc để của họ dòng tương ứng như các Tải sự kiện của các hình thức được thi hành.
   _imageStream =  _assembly.GetManifestResourceStream("MyNameSpace.MyImage.bmp")   _textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNameSpace.MyTextFile.txt"))				
Mã số trong các Tải sự kiện cho các hình thức tương tự như dưới đây:
   Try      _assembly = [Assembly].GetExecutingAssembly()      _imageStream =  _assembly.GetManifestResourceStream("MyNameSpace.MyImage.bmp")      _textStreamReader = New StreamReader(_assembly.GetManifestResourceStream("MyNamespace.MyTextFile.txt"))   Catch ex As Exception      MessageBox.Show("Resource wasn't found!", "Error")   End Try				
Các Cố gắng nắm bắt tuyên bố, được gọi là quản lý cấu trúc lỗi trong.NET, được sử dụng để nắm bắt bất kỳ lỗi nào có thể xảy ra trong khi trường hợp của các Lắp ráp lớp học chủ yếu truy cấp các nguồn tài nguyên.

back to the top

Hiển thị tài nguyên

Ví dụ này sử dụng hai nút để hiển thị các nguồn lực nhúng. Khi bạn bấm nút đầu tiên, một ảnh bitmap mà dựa trên các nguồn tài nguyên có nghĩa là đọc từ hội đồng được tạo ra và hiển thị trong các PictureBox kiểm soát của các hình thức. Nút thứ hai lần đọc từ một nguồn tài nguyên văn bản và hiển thị văn bản trong một hộp văn bản.

Để hiển thị các nhúng tài nguyên, hãy làm theo các bước sau:
  1. Thêm một PictureBox kiểm soát mẫu.
  2. Thêm một mới Nút kiểm soát mẫu, và sau đó thay đổi của nó Văn bản bất động sản để Hiển thị hình ảnh.
  3. Bấm đúp nút để mở của nó Nhấp vào sự kiện người xem mã, và sau đó dán sau đây mã trong sự kiện này:
       Try      PictureBox1.Image = New Bitmap(_imageStream)   Catch ex As Exception      MessageBox.Show("Image Couldn't be created !")   End Try					
    Mã này tạo ra một trường hợp mới của một ảnh bitmap mà dựa trên các dòng suối nguồn lực đã được đọc trong các Tải sự kiện của các hình thức.

  4. Thêm một TextBox kiểm soát mẫu.
  5. Thêm khác Nút kiểm soát mẫu, và sau đó thay đổi của nó Văn bản bất động sản để Nhận được văn bản.
  6. Bấm đúp chuột vào nút trong trình biên tập thiết kế để mở các Click_Event Đối với các nút, và sau đó dán sau đây mã trong sự kiện này:
       Try      If _textStreamReader.Peek() <> -1 Then         TextBox1.Text = _textStreamReader.ReadLine()      End If   Catch ex As Exception      MessageBox.Show("Error reading stream!")   End Try					
    Mã này sẽ xác định liệu ký tự được đọc vẫn còn tồn tại trong các dòng. Nếu nhân vật được tìm thấy, một dòng đọc văn bản hộp.
  7. Nhấn F5 để chạy các ứng dụng.
back to the top

Đầy đủ mã

   Imports System.IO   Imports System.Reflection   Public Class Form1      Inherits System.Windows.Forms.Form   #Region " Windows Form Designer generated code "      Public Sub New()         MyBase.New()         'This call is required by the Windows Form Designer.         InitializeComponent()          'Add any initialization after the InitializeComponent() call.      End Sub      'Form overrides dispose to clean up the component list.      Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)         If disposing Then            If Not (components Is Nothing) Then               components.Dispose()            End If         End If         MyBase.Dispose(disposing)      End Sub      'Required by the Windows Form Designer.      Private components As System.ComponentModel.IContainer       'NOTE: The following procedure is required by the Windows Form Designer.      'It can be modified using the Windows Form Designer.        'Do not modify it using the code editor.      Friend WithEvents Button1 As System.Windows.Forms.Button      Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox      Friend WithEvents Button2 As System.Windows.Forms.Button      Friend WithEvents TextBox1 As System.Windows.Forms.TextBox      <System.Diagnostics.DebuggerStepThrough()> Private Sub  InitializeComponent()         Me.Button1 = New System.Windows.Forms.Button()         Me.PictureBox1 = New System.Windows.Forms.PictureBox()         Me.Button2 = New System.Windows.Forms.Button()         Me.TextBox1 = New System.Windows.Forms.TextBox()         Me.SuspendLayout()         '         'Button1         '         Me.Button1.Location = New System.Drawing.Point(16, 196)         Me.Button1.Name = "Button1"         Me.Button1.TabIndex = 0         Me.Button1.Text = "Show Image"         '         'PictureBox1         '         Me.PictureBox1.Location = New System.Drawing.Point(8, 8)         Me.PictureBox1.Name = "PictureBox1"         Me.PictureBox1.Size = New System.Drawing.Size(280, 184)         Me.PictureBox1.TabIndex = 1         Me.PictureBox1.TabStop = False         '         'Button2         '         Me.Button2.Location = New System.Drawing.Point(16, 232)         Me.Button2.Name = "Button2"         Me.Button2.TabIndex = 2         Me.Button2.Text = "Get Text"         '         'TextBox1         '         Me.TextBox1.Location = New System.Drawing.Point(100, 232)         Me.TextBox1.Name = "TextBox1"         Me.TextBox1.Size = New System.Drawing.Size(176, 20)         Me.TextBox1.TabIndex = 3         Me.TextBox1.Text = "TextBox1"         '         'Form1         '         Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)         Me.ClientSize = New System.Drawing.Size(292, 266)         Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox1, Me.Button2, Me.PictureBox1, Me.Button1})         Me.Name = "Form1"         Me.Text = "Form1"         Me.ResumeLayout(False)      End Sub   #End Region      Dim _imageStream As Stream      Dim _textStreamReader As StreamReader      Dim _assembly As [Assembly]      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         Try            _assembly = [Assembly].GetExecutingAssembly()            _imageStream = _assembly.GetManifestResourceStream("MyNamespace.MyImage.bmp")            _textStreamReader = New StreamReader(_assembly.GetManifestResourceStream("MyNamespace.MyTextFile.txt"))         Catch ex As Exception            MessageBox.Show("Resource wasn't found!", "Error")         End Try      End Sub      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Try            PictureBox1.Image = New Bitmap(_imageStream)         Catch ex As Exception            MessageBox.Show("Image Couldn't be created !")         End Try      End Sub      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click         Try            If _textStreamReader.Peek() <> -1 Then               TextBox1.Text = _textStreamReader.ReadLine()            End If         Catch ex As Exception            MessageBox.Show("Error reading stream!")         End Try      End Sub   End Class				
Lưu ý Mã nên được thay đổi vào năm 2005 Visual Basic. Nếu bạn tạo một hình thức mới được đặt tên Form1 vào năm 2005 Visual Basic, một tập tin Form1.vb được tạo ra cho mã của bạn và một tập tin Form1.Designer.vb được tạo ra có chứa một phần tự động tạo ra. Các hình thức Windows nhà thiết kế sử dụng các từ khóa một phần để phân chia thực hiện Form1 thành hai tập tin riêng biệt. Điều này ngăn cản các nhà thiết kế phát ra mã được xen kẽ với mã của bạn.

Để biết thêm chi tiết về cải tiến mới ngôn ngữ Visual Basic 2005, ghé thăm Web site sau của Microsoft Developer Network (MSDN):
Để biết thêm chi tiết về các lớp học phần và các nhà thiết kế các hình thức Windows, hãy truy cập MSDN Web site sau:back to the top

Giải đáp thắc mắc

Bởi vì nguồn tài nguyên tên chữ, xác minh rằng bạn là bằng cách sử dụng đúng chính tả và trường hợp của các nguồn lực được truy cập. Bạn có thể sử dụng ILDASM để đọc dữ liệu hiển nhiên để xác minh chính tả chính xác của các tài nguyên.

back to the top
THAM KHẢO
Để biết thêm chi tiết, xem các nhà phát triển Microsoft sau đây Các trang Web mạng (MSDN): back to the top

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 319291 - Xem lại Lần cuối: 08/27/2011 21:22:00 - Bản sửa đổi: 2.0

Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic 2005

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB319291 KbMtvi
Phản hồi