• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Các bài viết hướng dẫn về Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi onlysoft » T.Sáu 28/03/2008 7:33 am

Tên bài viết: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad
Tác giả: Only Nguyễn
Cấp độ bài viết: Căn bản VB.NET
Tóm tắt: Mình sẻ hướng dẩn các bạn cách xử lý chuổi bằng chương trình giả lập Notepad, qua các ví dụ cụ thể



Window cung cấp cho người dùng một chương trình thao tác chuổi khá tốt đó là Notepad, tuy nhiên hiện nay thì có rất nhiều các chương trình pro hơn như Edit Plus, Notepad++ vv... Chương trình mà Only sử dụng để hướng dẩn các bạn "Xử lý chuổi bằng chương trình giả lập" đó là Notepad.NET, cái tên ngộ phải hong ? Tại vì nó được làm bằng VB.NET mà.
Giao diện chương trình như sau :

Notepad.PNG


Để xem chi tiết chương trình, các bạn tải về từ link sau :
viewtopic.php?f=39&t=77
Các bạn nhớ chạy thử chương trình trước khi bước vào bài học nha ! Bởi vì khi chạy nó mới biết cách thức nó hoạt động.
à mà, các bạn khác đừng gửi bài cho đến khi nào Only post lên hết đã nha ;)
Sửa lần cuối bởi onlysoft vào ngày CN 30/03/2008 8:07 pm với 4 lần sửa.


:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

I - Thiết kế giao diện :

Gửi bàigửi bởi onlysoft » T.Sáu 28/03/2008 7:34 am

Chương trình gồm có 5 Form : FrmMain, FrmInsHR, FrmEdit, FrmAdvandOption, FrmAbout chức năng từng form như sau :
- FrmMain : Form chính
- FrmEdit : Form biên tập chuổi (Tìm kiếm, thay thế, định giạng lề)
- FrmInsHR : Form chèn đường kẻ
- FrmAdvandOption : Form tùy chọn nâng cao
- FrmAbout : From bản quyền
1 - FrmMain (Form chính) : Là Form mà các bạn sẻ thao tác trên nó nhiều nhất, gồm có các Control chính sau : 1 MenuStrip, 1 ToolSrip, 1 SatusStrip và 1 TextBox thứ tự như sau :
- MnuSMain : Menu chính
- ToolSStandar : Thanh công cụ chuẩn
- SttSStatus : Thanh trạng thái chính
- TxtMain : Textbox chính
Còn các Form khác và các điều kiểm con thì các bạn chạy thử chương trình và tự tạo nhé ! :P nly chỉ giới thiệu sơ qua về Form chính thôi.
Sửa lần cuối bởi onlysoft vào ngày CN 30/03/2008 8:10 pm với 1 lần sửa.
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

II - Viết mã : 1 - Cho Form chính (FrmMain) :

Gửi bàigửi bởi onlysoft » T.Sáu 28/03/2008 7:37 am

1 - Cho Form chính (FrmMain) :
Đầu tiên chúng ta sẻ khai báo các biến cần thiết :

Mã: Chọn hết

  1. Public Class FrmMain
  2.     'KHAI BÁO BIẾN
  3.     Dim BolChanged As Boolean 'Biến xác định sự thay đổi nội dung trong Textbox
  4.     Dim StrFileSave As String 'Biến đường dẩn lưu tệp tin
  5. End Class
  6.  

Tiếp theo đến các hàm cần thiết : chương trình có 11 hàm chính như sau :

Mã: Chọn hết

  1. 'TẠO CÁC HÀM CẦN THIẾT
  2.     'Hàm mở file
  3.     Function FuncOpenFile(ByVal FileName As String) As String
  4.         FuncOpenFile = My.Computer.FileSystem.ReadAllText(FileName)
  5.     End Function
  6.  
  7.     'Các hàm biên tập tài liệu
  8.     'Tạo mới tài liệu
  9.     Private Sub NewDocument()
  10.         If BolChanged = True Then
  11.             If (MessageBox.Show("Bạn có muốn lưu tài liệu vừa sữa lại không ?", "New Document", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) = Windows.Forms.DialogResult.Yes Then
  12.                 SaveDocument()
  13.                 TxtMain.Text = ""
  14.             Else
  15.                 TxtMain.Text = ""
  16.             End If
  17.         End If
  18.     End Sub
  19.     'Mở tài liệu
  20.     Private Sub OpenDocument()
  21.         'Tùy chỉnh Giao thoại Open
  22.         If BolChanged = True Then
  23.             If (MessageBox.Show("Bạn có muốn lưu lại tài liệu đã sữa đổi không ?", "Open Document", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) = Windows.Forms.DialogResult.Yes Then
  24.                 SaveDocument()
  25.             End If
  26.         End If
  27.         With DlgOpen
  28.             .Filter = "Normal text file(*.txt)|*.txt|Configuration Settings(*.ini)|*.ini|Setup Information(*.inf)|*.inf|MS-DOS Batch File(*.bat)|*.bat|All files(*.*)|*.*"
  29.             .ShowDialog()
  30.             If .FileName <> "" Then
  31.                 TxtMain.Text = FuncOpenFile(.FileName)
  32.                 StrFileSave = .FileName
  33.             Else
  34.                 MessageBox.Show("Vui lòng chọn tệp tin để mở", "Open Document", MessageBoxButtons.OK, MessageBoxIcon.Information)
  35.             End If
  36.         End With
  37.     End Sub
  38.     'Lưu tài liệu
  39.     Private Sub SaveDocument()
  40.         Dim StrFileName As String
  41.         If StrFileSave = "" Then
  42.             With DlgSave
  43.                 .Filter = "Normal text file(*.txt)|*.txt|All files(*.*)|*.*"
  44.                 .ShowDialog()
  45.                 If .FileName <> "" Then
  46.                     'Kiểm tra tên file
  47.                     If .FilterIndex = 0 Then
  48.                         If Strings.LCase(Strings.Right(.FileName, 4)) = ".txt" Then
  49.                             StrFileName = .FileName
  50.                         Else
  51.                             StrFileName = .FileName & ".txt"
  52.                         End If
  53.                     Else
  54.                         StrFileName = .FileName
  55.                     End If
  56.                     'Lưu tài liệu
  57.                     My.Computer.FileSystem.WriteAllText(StrFileName, TxtMain.Text, False)
  58.                     StrFileSave = StrFileName
  59.                 End If
  60.             End With
  61.         Else
  62.             My.Computer.FileSystem.WriteAllText(StrFileSave, TxtMain.Text, False)
  63.         End If
  64.         'Biến
  65.         BolChanged = False
  66.         'Thay đổi trạng thái menu
  67.         MnuFleSave.Enabled = False
  68.         Tool_BttSave.Enabled = False
  69.     End Sub
  70.     'Hoàn tác
  71.     Private Sub UndoDocument()
  72.         TxtMain.Undo()
  73.         MnuEdtUndo.Enabled = False
  74.         Tool_BttUndo.Enabled = False
  75.         MnuEdtRedo.Enabled = True
  76.         Tool_BttRedo.Enabled = True
  77.     End Sub
  78.     'Làm lại
  79.     Private Sub RedoDocument()
  80.         TxtMain.Undo()
  81.         MnuEdtRedo.Enabled = False
  82.         Tool_BttRedo.Enabled = False
  83.         MnuEdtUndo.Enabled = True
  84.         Tool_BttUndo.Enabled = True
  85.     End Sub
  86.     'Thoát chương trình
  87.     Private Sub UnloadProgram()
  88.         'Xét điều kiện trước khi thoát
  89.         If BolChanged = True Then
  90.             If (MessageBox.Show("Bạn có muốn lưu tại liệu vừa sữa trước khi thoát không ?", "Exit Program", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) = Windows.Forms.DialogResult.Yes Then
  91.                 SaveDocument()
  92.             End If
  93.         End If
  94.         End
  95.     End Sub
  96.     'Thiết lập trạng thái
  97.     Private Sub SetStatus()
  98.         'Thay đổi thanh trạng thái
  99.         With TxtMain
  100.             Stt_LblRow.Text = "Dòng thứ : " & .GetLineFromCharIndex(.SelectionStart) + 1 & " \ " & .GetLineFromCharIndex(Strings.Len(.Text)) + 1
  101.             Stt_lblCount.Text = "Từ thứ : " & .SelectionStart & " \ " & Strings.Len(.Text)
  102.             Stt_LblLenght.Text = "Số từ : " & .Text.Length & " \ " & .MaxLength
  103.         End With
  104.     End Sub
  105.     'Chèn Text
  106.     Private Sub InsertText(ByVal Text As String)
  107.         On Error Resume Next
  108.         Clipboard.SetText(Text)
  109.         TxtMain.Paste()
  110.         Clipboard.Clear()
  111.     End Sub
  112.     'Định giạng phông chữ
  113.     Private Sub FormatFont()
  114.         If DlgFont.ShowDialog = Windows.Forms.DialogResult.OK Then
  115.             TxtMain.Font = DlgFont.Font
  116.         End If
  117.     End Sub
  118.  
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

II - Viết mã : 1 - Cho Form chính (FrmMain) :

Gửi bàigửi bởi onlysoft » T.Sáu 28/03/2008 7:40 am

Và cuối cùng là xữ lý sự kiện :

Mã: Chọn hết

  1. 'SỮ LÝ CÁC SỰ KIỆN
  2.     'Khi đóng form
  3.     Private Sub FrmMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  4.         UnloadProgram()
  5.     End Sub
  6.     'Khi form mới nạp
  7.     Private Sub FrmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  8.         'Thiết lập các giá trị cho biến
  9.         BolChanged = False
  10.         StrFileSave = ""
  11.         'Thiết lập sư kiện ban đầu
  12.         SetStatus()
  13.     End Sub
  14.  
  15.     'Xự kiện khi nhấn vào các menu con trong mnufile
  16.     Private Sub MnuFleNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuFleNew.Click
  17.         NewDocument()
  18.     End Sub
  19.     Private Sub MnuFleOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuFleOpen.Click
  20.         OpenDocument()
  21.     End Sub
  22.     Private Sub MnuFleSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuFleSave.Click
  23.         SaveDocument()
  24.     End Sub
  25.     Private Sub MnuFleSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuFleSaveAs.Click
  26.         StrFileSave = ""
  27.         SaveDocument()
  28.     End Sub
  29.  
  30.     'Sự kiện xãy ra trên textbox
  31.     Private Sub TxtMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtMain.KeyDown
  32.         'Thay đổi thanh trạng thái
  33.         SetStatus()
  34.     End Sub
  35.     Private Sub TxtMain_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TxtMain.MouseDown
  36.         'Thay đổi thanh trạng thái
  37.         SetStatus()
  38.     End Sub
  39.     Private Sub TxtMain_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtMain.TextChanged
  40.         'Xữ lý khi nội dung textbox thay đổi
  41.         'Thay đổi giá trị biến
  42.         BolChanged = True
  43.         'Hiệu chỉnh menu
  44.         MnuEdtUndo.Enabled = True
  45.         Tool_BttUndo.Enabled = True
  46.         MnuFleSave.Enabled = True
  47.         Tool_BttSave.Enabled = True
  48.         'Thay đổi thanh trạng thái
  49.         SetStatus()
  50.     End Sub
  51.  
  52.     'Các menu thao tác căn bản
  53.     Private Sub MnuEdtCut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtCut.Click
  54.         TxtMain.Cut()
  55.     End Sub
  56.     Private Sub MnuEdtCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtCopy.Click
  57.         TxtMain.Copy()
  58.     End Sub
  59.     Private Sub MnuEdtPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtPaste.Click
  60.         TxtMain.Paste()
  61.     End Sub
  62.     Private Sub MnuEdtDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtDelete.Click
  63.         TxtMain.Cut()
  64.         Clipboard.Clear()
  65.     End Sub
  66.     Private Sub MnuEdtSelectAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtSelectAll.Click
  67.         TxtMain.SelectAll()
  68.     End Sub
  69.     'Các menu hoàn tác
  70.     Private Sub MnuEdtUndo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtUndo.Click
  71.         UndoDocument()
  72.     End Sub
  73.     Private Sub MnuEdtRedo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtRedo.Click
  74.         RedoDocument()
  75.     End Sub
  76.     'Các menu tìm kiếm thay thế
  77.     Private Sub MnuEdtFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtFind.Click
  78.         On Error Resume Next
  79.         If TxtMain.Text <> "" Then
  80.             With FrmEdit
  81.                 .TabSMain.SelectedIndex = 0
  82.                 .CancelButton = .BttFndCancel
  83.                 .ShowDialog()
  84.             End With
  85.         End If
  86.     End Sub
  87.     Private Sub MnuEdtReplace_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtReplace.Click
  88.         On Error Resume Next
  89.         If TxtMain.Text <> "" Then
  90.             With FrmEdit
  91.                 .TabSMain.SelectedIndex = 1
  92.                 .CancelButton = .BttRepCancel
  93.                 .ShowDialog()
  94.             End With
  95.         End If
  96.     End Sub
  97.     Private Sub MnuEdtAlignLine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEdtAlignLine.Click
  98.         On Error Resume Next
  99.         If TxtMain.Text <> "" Then
  100.             With FrmEdit
  101.                 .TabSMain.SelectedIndex = 2
  102.                 .CancelButton = .BttAliCancel
  103.                 .ShowDialog()
  104.             End With
  105.         End If
  106.     End Sub
  107.     'Menu định giạng đổ giòng
  108.     Private Sub MnuForWordWrap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForWordWrap.Click
  109.         TxtMain.WordWrap = MnuForWordWrap.Checked
  110.     End Sub
  111.    
  112.     'View các thanh công cụ
  113.     Private Sub MniViwToolbar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MniViwToolbar.Click
  114.         ToolSStandar.Visible = MniViwToolbar.Checked
  115.     End Sub
  116.     Private Sub MnuViwStatusbar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuViwStatusbar.Click
  117.         SttSStatus.Visible = MnuViwStatusbar.Checked
  118.     End Sub
  119.    
  120.     'Xữ lý sự kiện trên các toolbar
  121.     Private Sub Tool_BttNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttNew.Click
  122.         NewDocument()
  123.     End Sub
  124.     Private Sub Tool_BttOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttOpen.Click
  125.         OpenDocument()
  126.     End Sub
  127.     Private Sub Tool_BttSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttSave.Click
  128.         SaveDocument()
  129.     End Sub
  130.     Private Sub Tool_BttUndo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttUndo.Click
  131.         UndoDocument()
  132.     End Sub
  133.     Private Sub Tool_BttRedo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttRedo.Click
  134.         RedoDocument()
  135.     End Sub
  136.     Private Sub Tool_BttCut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttCut.Click
  137.         TxtMain.Cut()
  138.     End Sub
  139.     Private Sub Tool_BttCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttCopy.Click
  140.         TxtMain.Copy()
  141.     End Sub
  142.     Private Sub Tool_BttPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttPaste.Click
  143.         TxtMain.Paste()
  144.     End Sub
  145.     Private Sub Tool_BttFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttFind.Click
  146.         On Error Resume Next
  147.         If TxtMain.Text <> "" Then
  148.             With FrmEdit
  149.                 .TabSMain.SelectedIndex = 0
  150.                 .CancelButton = .BttFndCancel
  151.                 .ShowDialog()
  152.             End With
  153.         End If
  154.     End Sub
  155.  
  156.     'Dùng Timer để kiểm tra xem Clipboar có Text được copy không
  157.     Private Sub TmrClipboard_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TmrClipboard.Tick
  158.         If Clipboard.GetText <> "" Then
  159.             MnuEdtPaste.Enabled = True
  160.             Tool_BttPaste.Enabled = True
  161.         Else
  162.             MnuEdtPaste.Enabled = False
  163.             Tool_BttPaste.Enabled = False
  164.         End If
  165.     End Sub
  166.     'Bản quyền
  167.     Private Sub MnuHlpAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuHlpAbout.Click
  168.         FrmAbout.ShowDialog()
  169.     End Sub
  170.     'Thoát
  171.     Private Sub MnuFleExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuFleExit.Click
  172.         UnloadProgram()
  173.     End Sub
  174.  
  175.     'Các lệnh chèn
  176.     'Các ký tự đặc biệt
  177.     Private Sub MnuInsSybCopyright_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuInsSybCopyright.Click
  178.         InsertText(sender.ToString)
  179.     End Sub
  180.     Private Sub MnuInsSybProduct_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuInsSybProduct.Click
  181.         InsertText(sender.ToString)
  182.     End Sub
  183.     Private Sub MnuInsSybTM_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuInsSybTM.Click
  184.         InsertText(sender.ToString)
  185.     End Sub
  186.     'Chèn ngày giờ
  187.     Private Sub MnuInsDateandTime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuInsDateandTime.Click
  188.         InsertText(Now.ToString)
  189.     End Sub
  190.  
  191.     'Các lệnh định giạng
  192.     'Định giạn chữ thường toàn văn
  193.     Private Sub MnuForAllLowerCase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForAllLowerCase.Click
  194.         TxtMain.Text = TxtMain.Text.ToLower
  195.     End Sub
  196.     'Định giạn chữ hoa toàn văn
  197.     Private Sub MnuForAllUpperCase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForAllUpperCase.Click
  198.         TxtMain.Text = TxtMain.Text.ToUpper
  199.     End Sub
  200.     'Định giạn chữ hoa vùng chọn
  201.     Private Sub MnuForSelUpperCase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForSelUpperCase.Click
  202.         Dim StrText As String
  203.         Dim IntSelStart, IntSelLenght As Integer
  204.         StrText = TxtMain.SelectedText
  205.         IntSelStart = TxtMain.SelectionStart
  206.         IntSelLenght = TxtMain.SelectionLength
  207.         TxtMain.Cut()
  208.         InsertText(StrText.ToUpper)
  209.         TxtMain.SelectionStart = IntSelStart
  210.         TxtMain.SelectionLength = IntSelLenght
  211.     End Sub
  212.     'Định giạn chữ thường vùng chọn
  213.     Private Sub MnuForSelLowerCase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForSelLowerCase.Click
  214.         Dim StrText As String
  215.         Dim IntSelStart, IntSelLenght As Integer
  216.         StrText = TxtMain.SelectedText
  217.         IntSelStart = TxtMain.SelectionStart
  218.         IntSelLenght = TxtMain.SelectionLength
  219.         TxtMain.Cut()
  220.         InsertText(StrText.ToLower)
  221.         TxtMain.SelectionStart = IntSelStart
  222.         TxtMain.SelectionLength = IntSelLenght
  223.     End Sub
  224.     'Mở form tùy chọn nâng cao
  225.     Private Sub MnuForAdvandOption_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForAdvandOption.Click
  226.         FrmAdvandOption.ShowDialog()
  227.     End Sub
  228.     'Định giạng font
  229.     'Xữ lý bằng menu
  230.     Private Sub MnuForFont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForFont.Click
  231.         FormatFont()
  232.     End Sub
  233.     'Xữ lý bằng toolbar
  234.     Private Sub Tool_BttFont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_BttFont.Click
  235.         FormatFont()
  236.     End Sub
  237.  
  238.     'Định giạng màu
  239.     'Màu chữ
  240.     Private Sub MnuForForeColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForForeColor.Click
  241.         DlgColor.FullOpen = True
  242.         If DlgColor.ShowDialog = Windows.Forms.DialogResult.OK Then
  243.             TxtMain.ForeColor = DlgColor.Color
  244.         End If
  245.     End Sub
  246.     'Màu nền
  247.     Private Sub MnuForBackColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuForBackColor.Click
  248.         DlgColor.FullOpen = True
  249.         If DlgColor.ShowDialog = Windows.Forms.DialogResult.OK Then
  250.             TxtMain.BackColor = DlgColor.Color
  251.         End If
  252.     End Sub
  253.  
  254.     'Chèn đường kẻ ngang
  255.     Private Sub MnuInsHorizontalRuler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuInsHorizontalRuler.Click
  256.         On Error Resume Next
  257.         FrmInsHR.ShowDialog()
  258.     End Sub
  259.  
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

2 - Cho Form biên tập (FrmEdit) :

Gửi bàigửi bởi onlysoft » T.Sáu 28/03/2008 7:42 am

2 - Cho Form biên tập (FrmEdit) :
Lệnh cho form như sau :

Mã: Chọn hết

  1. Public Class FrmEdit
  2.     'KHAI BÁO BIẾN TOÀN CỤC
  3.     Dim IntFindLocation As Integer
  4.     'SỰ LÝ SỰ KIỆN
  5.     Private Sub BttFndFindNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttFndFindNext.Click
  6.         With FrmMain
  7.             'Tìm tiếp
  8.             If IntFindLocation = 0 Then 'Tìm ở vị trí đầu tiên
  9.                 If ChkFndMatchCase.Checked = False Then
  10.                     IntFindLocation = Strings.InStr(.TxtMain.Text, TxtFndFindWhat.Text, CompareMethod.Text)
  11.                 Else
  12.                     IntFindLocation = Strings.InStr(.TxtMain.Text, TxtFndFindWhat.Text, CompareMethod.Binary)
  13.                 End If
  14.             Else 'Các vị trí khác
  15.                 If ChkFndMatchCase.Checked = False Then
  16.                     IntFindLocation = Strings.InStr(IntFindLocation + Strings.Len(TxtFndFindWhat.Text), .TxtMain.Text, TxtFndFindWhat.Text, CompareMethod.Text)
  17.                 Else
  18.                     IntFindLocation = Strings.InStr(IntFindLocation + Strings.Len(TxtFndFindWhat.Text), .TxtMain.Text, TxtFndFindWhat.Text, CompareMethod.Binary)
  19.                 End If
  20.             End If
  21.  
  22.             'Sét điều kiện bôi đen textbox
  23.             If IntFindLocation <> 0 Then
  24.                 .TxtMain.SelectionStart = IntFindLocation - 1
  25.                 .TxtMain.SelectionLength = Strings.Len(TxtFndFindWhat.Text)
  26.             Else
  27.                 MessageBox.Show("Đã tìm hết văn bản", "Find complet", MessageBoxButtons.OK, MessageBoxIcon.Information)
  28.                 IntFindLocation = 0
  29.             End If
  30.         End With
  31.     End Sub
  32.  
  33.     Private Sub FrmEdit_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  34.         'Thiết lập giá trị cho biến
  35.         IntFindLocation = 0
  36.     End Sub
  37.  
  38.     Private Sub BttFndCount_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttFndCount.Click
  39.         On Error Resume Next
  40.         Dim IntFind, IntCount As Integer
  41.         IntFind = 1
  42.         With FrmMain
  43.             'Tìm hết
  44.             While IntFind <> 0
  45.                 If ChkFndMatchCase.Checked = False Then
  46.                     IntFind = Strings.InStr(IntFind + Strings.Len(TxtFndFindWhat.Text), .TxtMain.Text, TxtFndFindWhat.Text, CompareMethod.Text)
  47.                 Else
  48.                     IntFind = Strings.InStr(IntFind + Strings.Len(TxtFndFindWhat.Text), .TxtMain.Text, TxtFndFindWhat.Text, CompareMethod.Binary)
  49.                 End If
  50.                 IntCount = IntCount + 1
  51.             End While
  52.             MessageBox.Show("Tổng số từ tìm được : " & IntCount, "Find complet", MessageBoxButtons.OK, MessageBoxIcon.Information)
  53.         End With
  54.     End Sub
  55.  
  56.     Private Sub BttRepReplace_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttRepReplace.Click
  57.         With FrmMain
  58.             If ChkRepMatchCase.Checked = False Then
  59.                 .TxtMain.Text = Strings.Replace(.TxtMain.Text, TxtRepFindWhat.Text, TxtRepReplaceWith.Text, , , CompareMethod.Text)
  60.             Else
  61.                 .TxtMain.Text = Strings.Replace(.TxtMain.Text, TxtRepFindWhat.Text, TxtRepReplaceWith.Text, , , CompareMethod.Binary)
  62.             End If
  63.         End With
  64.     End Sub
  65.  
  66.     Private Sub TabSMain_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabSMain.Click
  67.         'Chuyển cancel button khi chuyển tab
  68.         Select Case TabSMain.SelectedIndex
  69.             Case 0
  70.                 Me.CancelButton = BttFndCancel
  71.             Case 1
  72.                 Me.CancelButton = BttRepCancel
  73.             Case 2
  74.                 Me.CancelButton = BttAliCancel
  75.         End Select
  76.     End Sub
  77.  
  78.     Private Sub BttAliAlignText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttAliAlignText.Click
  79.         'Khai báo biến
  80.         Dim I As Integer
  81.         Dim StrSplit() As String
  82.         Dim StrText As String
  83.         StrText = ""
  84.         With FrmMain
  85.             'Cắt chuổi
  86.             StrSplit = Strings.Split(.TxtMain.Text, vbNewLine)
  87.             'Thêm định giạng dòng
  88.             For I = 0 To StrSplit.GetUpperBound(0) - 1
  89.                 StrText = StrText & TxtAliAddLeft.Text & StrSplit(I) & TxtAliAddRight.Text & vbNewLine
  90.             Next
  91.             'In kết quã
  92.             .TxtMain.Text = StrText
  93.         End With
  94.     End Sub
  95.  
  96.     Private Sub TxtAliAddLeft_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtAliAddLeft.KeyDown
  97.         If e.KeyCode = Keys.Return Then
  98.             TxtAliAddLeft.Text = Strings.Left(TxtAliAddLeft.Text, Strings.Len(TxtAliAddLeft.Text) - 1)
  99.         End If
  100.     End Sub
  101.  
  102.     Private Sub TxtAliAddRight_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtAliAddRight.KeyDown
  103.         If e.KeyCode = Keys.Return Then
  104.             TxtAliAddRight.Text = Strings.Left(TxtAliAddRight.Text, Strings.Len(TxtAliAddRight.Text) - 1)
  105.         End If
  106.     End Sub
  107.  
  108. End Class
  109.  
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

Re: Hướng dẫn sữ lý chuổi bằng chương trình giã lập Notepad

Gửi bàigửi bởi onlysoft » T.Sáu 28/03/2008 7:43 am

3 - Cho Form chèn đường kẻ (FrmInsHR) :
Lệnh cho form như sau :

Mã: Chọn hết

  1. Public Class FrmInsHR
  2.  
  3.     Private Sub BttInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttInsert.Click
  4.         Dim HR As String
  5.         HR = Strings.StrDup(CType(Val(MTxtLen.Text), Integer), TxtCharacter.Text)
  6.         Clipboard.SetText(HR)
  7.         FrmMain.TxtMain.Paste()
  8.         Clipboard.Clear()
  9.         Me.Close()
  10.     End Sub
  11.  
  12. End Class
  13.  
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

4 - Cho Form tùy chọn nâng cao (FrmAdvandOption) :

Gửi bàigửi bởi onlysoft » T.Sáu 28/03/2008 7:46 am

4 - Cho Form tùy chọn nâng cao (FrmAdvandOption) :
Lệnh cho form như sau :

Mã: Chọn hết

  1. Public Class FrmInsHR
  2.  
  3.     Private Sub BttInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttInsert.Click
  4.         Dim HR As String
  5.         HR = Strings.StrDup(CType(Val(MTxtLen.Text), Integer), TxtCharacter.Text)
  6.         Clipboard.SetText(HR)
  7.         FrmMain.TxtMain.Paste()
  8.         Clipboard.Clear()
  9.         Me.Close()
  10.     End Sub
  11.  
  12. End Class
  13.  
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

Bài hướng dẩn đến đây là hết

Gửi bàigửi bởi onlysoft » T.Sáu 28/03/2008 7:47 am

Bài hướng dẩn đến đây là hết, :x nly đã cố gắng làm sạch mã và trình bày đẹp mắt, hy vọng các bạn sẻ thích chủ đề này, nếu các bạn lười đọc thì down bài viết về nha. Hãy chờ đến bài tiếp theo nhé "Hướng dẩn sữ dụng Rich Text Box control bằng chương trình giã lập Wordpad". Mọi người đọc và cho :D nly ý kiến để cho bài viết sau được hoàn thiện hơn.
Còn đây là file hướng dẫn nè :
Notepad.rar
File hướng dẩn
(79.44 KiB) Đã tải 1076 lần
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
timlanh
Bài viết: 2
Ngày tham gia: CN 30/03/2008 1:50 am
Đến từ: Viet Nam

Re: Hướng dẫn xữ lý chuổi bằng chương trình giã lập Notepad

Gửi bàigửi bởi timlanh » CN 30/03/2008 2:34 am

Rất cảm ơn bạn. Bài viết của bạn rất cụ thể và mạch lạc. Hy vọng trong thời gian tới bạn sẽ có nhiều bài viết như thế nữa!

Hình đại diện của người dùng
VBNewbie
Thành viên tích cực
Thành viên tích cực
Bài viết: 113
Ngày tham gia: T.Bảy 29/03/2008 7:13 pm
Đến từ: Computer
Been thanked: 3 time
Liên hệ:

Re: Hướng dẫn xữ lý chuổi bằng chương trình giã lập Notepad

Gửi bàigửi bởi VBNewbie » CN 30/03/2008 8:20 am

:D Pác có thể viết chương trình bằng VB6 được không chỉ em với. Vì Notepad.NET đòi hỏi người sử dụng phải có .Net framework :D
-------[[[[[[[ VMind - PM trắc nghiệm đa năng ]]]]]]]]------
http://vmind.co.cc/vmind
-------[[[[ Diễn đàn trí tuệ Việt Nam ! ]]]]]]]]-----
http://vmind.co.cc

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

Re: Hướng dẫn xữ lý chuổi bằng chương trình giã lập Notepad

Gửi bàigửi bởi onlysoft » CN 30/03/2008 7:57 pm

VBNewbie đã viết::D Pác có thể viết chương trình bằng VB6 được không chỉ em với. Vì Notepad.NET đòi hỏi người sử dụng phải có .Net framework :D

Ừ, lần sau mình sẻ viết một bài bằng VB6, rất vui vì được các bạn quan tâm :D
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

DaiHiepMu
Bài viết: 2
Ngày tham gia: T.Sáu 28/03/2008 12:47 am

Re: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi DaiHiepMu » CN 30/03/2008 8:12 pm

Rất cảm ơn Only, hình như bài này anh đã cố gắng sửa chính tả rồi đúng không, hehe. Chúc anh thành công trên con đường khắc phục lỗi chính tả của mình :d

Hình đại diện của người dùng
TinTacTi
Bài viết: 5
Ngày tham gia: T.Năm 03/04/2008 6:37 pm

Re: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi TinTacTi » T.Năm 17/04/2008 7:56 pm

Mình mún nhập công thức hóa học và các phương trình mũ vô CSDL rùi lấy các công thức từ CSDL ra thì sao nhỉ
VD:
H2O NHƯ VẬY THÌ SAO ĐÚNG DC
X3 + X2 LÀM SAO HỈU LÀ X MŨ 3 + X MŨ 2

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi anhtuyenbk » T.Năm 17/04/2008 10:26 pm

TinTacTi đã viết:Mình mún nhập công thức hóa học và các phương trình mũ vô CSDL rùi lấy các công thức từ CSDL ra thì sao nhỉ
VD:
H2O NHƯ VẬY THÌ SAO ĐÚNG DC
X3 + X2 LÀM SAO HỈU LÀ X MŨ 3 + X MŨ 2

Về cách thao tác với CSDL thì chúng ta sẽ ko bàn đến vì forum đã có rồi.
Ở đây chúng ta chỉ thảo luận làm sao để hiển thị được các công thúc hóa học.
Đây là đoạn code ví dụ cho các công thức hóa học và bạn hãy xem hình kết quả nhé.

Mã: Chọn hết

  1. Dim pChuoi As String = TextBox1.Text ' Text cần đổi ở đây
  2.         For i As Integer = 0 To pChuoi.Length - 1
  3.             'Ký tự chữ cái
  4.             If Not IsNumeric(pChuoi.Substring(i, 1)) Then
  5.                 RichTextBox1.SelectionCharOffset = 0
  6.             Else 'Con số tạo subscript
  7.                 RichTextBox1.SelectionCharOffset = -10
  8.             End If
  9.             RichTextBox1.AppendText(pChuoi.Substring(i, 1))
  10.         Next

Còn phương trình thì bạn hãy tự suy nghĩ tiếp nhé.
Tập tin đính kèm
anh hoa hoc.jpg
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

Hình đại diện của người dùng
TinTacTi
Bài viết: 5
Ngày tham gia: T.Năm 03/04/2008 6:37 pm

Re: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi TinTacTi » T.Sáu 18/04/2008 9:55 pm

Ha ha, cái này thì cũng dc nhưng níu mà công thức HyOz mà 0 phải là H2O thì làm sao đây
VD: CxHyOz = C2H3O4 thì làm sao mà dùng IsNumeric được ;;)

Hay là vừa mũ vừa CTHH thì sao nà
VD:
H2O + X mũ 3 + Y mũ 3 = 0 thì chắc bó tay
==> Tớ nghĩ là phải dùng thêm vài kái button địng dạng giống trong Word

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi anhtuyenbk » T.Sáu 18/04/2008 10:17 pm

TinTacTi đã viết:Ha ha, cái này thì cũng dc nhưng níu mà công thức HyOz mà 0 phải là H2O thì làm sao đây
VD: CxHyOz = C2H3O4 thì làm sao mà dùng IsNumeric được ;;)

Hay là vừa mũ vừa CTHH thì sao nà
VD:
H2O + X mũ 3 + Y mũ 3 = 0 thì chắc bó tay
==> Tớ nghĩ là phải dùng thêm vài kái button địng dạng giống trong Word

Cái sy của bạn đưa ra cũng hay (mình ko ngờ tới) nhưng ko phải là ko xử lý được :D
Chúng ta chỉ cần phân biệt cái nào là tên nguyên tố (chữ IN Hoa) hay ký tự subscript (số hay ký tự viết thường mà thôi). Nói chung phức tạp hơn tý nhưng giờ lười suy nghĩ quá :)) :))
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

mathuat10
Bài viết: 2
Ngày tham gia: T.Ba 10/03/2009 8:06 pm

Re: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi mathuat10 » T.Hai 23/03/2009 9:08 pm

ủa bạn ơi bạn viết bài này bằng vb6 chưa vậy (hướng dẫn tạo notepad bằng vb6)

xhung0602
Bài viết: 7
Ngày tham gia: T.Hai 25/01/2010 8:36 pm

Re: Bài hướng dẩn đến đây là hết

Gửi bàigửi bởi xhung0602 » CN 04/12/2011 1:30 am

onlysoft đã viết:Bài hướng dẩn đến đây là hết, :x nly đã cố gắng làm sạch mã và trình bày đẹp mắt, hy vọng các bạn sẻ thích chủ đề này, nếu các bạn lười đọc thì down bài viết về nha. Hãy chờ đến bài tiếp theo nhé "Hướng dẩn sữ dụng Rich Text Box control bằng chương trình giã lập Wordpad". Mọi người đọc và cho :D nly ý kiến để cho bài viết sau được hoàn thiện hơn.
Còn đây là file hướng dẫn nè :
Notepad.rar


Bạn up cả cái Form lên đc ko cậu?

baohiep
Thành viên danh dự
Thành viên danh dự
Bài viết: 109
Ngày tham gia: CN 27/12/2009 6:37 pm
Đến từ: Tam Kỳ
Has thanked: 3 time
Been thanked: 9 time

Re: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi baohiep » T.Bảy 11/02/2012 11:37 am

Sao code form nâng cao lại là của form chèn đường kẻ? :(
I'm Hiep.

anhhungbt9025
Thành viên chính thức
Thành viên chính thức
Bài viết: 32
Ngày tham gia: T.Tư 19/09/2012 9:01 am
Has thanked: 10 time

Re: Hướng dẫn Xử lý chuổi bằng chương trình giả lập Notepad

Gửi bàigửi bởi anhhungbt9025 » T.Ba 08/01/2013 12:33 am

a có thể úp hết form lên lun được không!


Quay về “[.NET] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách