Imports System.Data.OleDb
Public Class Form1
Private rtb As RichTextBox = New RichTextBox()
Private tlp As TableLayoutPanel = New TableLayoutPanel()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Maximized
Me.rtb.Dock = DockStyle.Fill
Me.rtb.Font = New Font("黑体", 70, FontStyle.Bold)
Me.rtb.BackColor = Color.Black
Me.rtb.ReadOnly = True
Me.Controls.Add(Me.rtb)
Dim tsb As ToolStripButton = New ToolStripButton("目录(Alt+&S)", Nothing, AddressOf tsb_Click)
Dim ms As MenuStrip = New MenuStrip()
tsb.Font = New Font("黑体", 15, FontStyle.Bold)
ms.Items.Add(tsb)
Me.Controls.Add(ms)
tlp.Dock = DockStyle.Fill
tlp.ColumnCount = 4
tlp.RowCount = 30
For i As Integer = 0 To tlp.ColumnCount - 1
tlp.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 25.0!))
Next
For i As Integer = 0 To tlp.RowCount - 1
tlp.RowStyles.Add(New RowStyle(SizeType.Percent, 100 / tlp.RowCount * 1.0!))
Next
Dim mulu As String() = {"旧约", "律法书", "王国前历史书", "王国时期历史书", "被掳后历史书", "诗歌·智慧书", "大先知书", "王国时期小先知书", "被掳后小先知书", "新约", "四福音", "教会历史", "保罗书信", "其他使徒书信", "对约翰的启示"}
Dim lbl As Label() = New Label(mulu.Length) {}
For i As Integer = 0 To mulu.Length - 1
lbl(i) = New Label()
lbl(i).Anchor = AnchorStyles.None
lbl(i).AutoSize = True
If i <> 0 And i <> 9 Then
lbl(i).BorderStyle = BorderStyle.FixedSingle
lbl(i).Font = New Font("黑体", 15, FontStyle.Bold)
Else
tlp.SetColumnSpan(lbl(i), 2)
lbl(i).Font = New Font("黑体", 15, FontStyle.Bold)
End If
lbl(i).Dock = DockStyle.Fill
lbl(i).Text = mulu(i)
lbl(i).TextAlign = ContentAlignment.MiddleCenter
lbl(i).ForeColor = Color.Red
Next
tlp.Controls.Add(lbl(0), 0, 0)
tlp.Controls.Add(lbl(1), 0, 1)
tlp.Controls.Add(lbl(2), 0, 7)
tlp.Controls.Add(lbl(3), 0, 13)
tlp.Controls.Add(lbl(4), 0, 23)
tlp.Controls.Add(lbl(5), 1, 1)
tlp.Controls.Add(lbl(6), 1, 7)
tlp.Controls.Add(lbl(7), 1, 13)
tlp.Controls.Add(lbl(8), 1, 23)
tlp.Controls.Add(lbl(9), 2, 0)
tlp.Controls.Add(lbl(10), 2, 1)
tlp.Controls.Add(lbl(11), 2, 7)
tlp.Controls.Add(lbl(12), 2, 13)
tlp.Controls.Add(lbl(13), 3, 1)
tlp.Controls.Add(lbl(14), 3, 13)
Dim juan As String() = {"创世记", "出埃及记", "利未记", "民数记", "申命记", "约书亚记", "士师记", "路得记", "撒母耳记上", "撒母耳记下", "列王纪上", "列王纪下", "历代志上", "历代志下", "以斯拉记", "尼希米记", "以斯帖记", "约伯记", "诗篇", "箴言", "传道书", "雅歌", "以赛亚书", "耶利米书", "耶利米哀歌", "以西结书", "但以理书", "何西阿书", "约珥书", "阿摩司书", "俄巴底亚书", "约拿书", "弥迦书", "那鸿书", "哈巴谷书", "西番雅书", "哈该书", "撒迦利亚书", "玛拉基书", "马太福音", "马可福音", "路加福音", "约翰福音", "使徒行传", "罗马书", "哥林多前书", "哥林多后书", "加拉太书", "以弗所书", "腓立比书", "歌罗西书", "帖撒罗尼迦前书", "帖撒罗尼迦后书", "提摩太前书", "提摩太后书", "提多书", "腓利门书", "希伯来书", "雅各书", "彼得前书", "彼得后书", "约翰壹书", "约翰贰书", "约翰叁书", "犹大书", "启示录"}
Dim lkl As LinkLabel() = New LinkLabel(juan.Length) {}
For i As Integer = 0 To juan.Length - 1
lkl(i) = New LinkLabel()
lkl(i).Anchor = AnchorStyles.None
lkl(i).AutoSize = True
lkl(i).Font = New Font("黑体", 15, FontStyle.Bold)
lkl(i).Text = juan(i)
lkl(i).TextAlign = ContentAlignment.MiddleCenter
Next
For i As Integer = 0 To 4
tlp.Controls.Add(lkl(i), 0, i + 2)
Next
For i As Integer = 5 To 7
tlp.Controls.Add(lkl(i), 0, i + 3)
Next
For i As Integer = 8 To 13
tlp.Controls.Add(lkl(i), 0, i + 6)
Next
For i As Integer = 14 To 16
tlp.Controls.Add(lkl(i), 0, i + 10)
Next
For i As Integer = 17 To 21
tlp.Controls.Add(lkl(i), 1, i - 15)
Next
For i As Integer = 22 To 26
tlp.Controls.Add(lkl(i), 1, i - 14)
Next
For i As Integer = 27 To 35
tlp.Controls.Add(lkl(i), 1, i - 13)
Next
For i As Integer = 36 To 38
tlp.Controls.Add(lkl(i), 1, i - 12)
Next
For i As Integer = 39 To 42
tlp.Controls.Add(lkl(i), 2, i - 37)
Next
For i As Integer = 43 To 43
tlp.Controls.Add(lkl(i), 2, i - 35)
Next
For i As Integer = 44 To 56
tlp.Controls.Add(lkl(i), 2, i - 30)
Next
For i As Integer = 57 To 64
tlp.Controls.Add(lkl(i), 3, i - 55)
Next
For i As Integer = 65 To 65
tlp.Controls.Add(lkl(i), 3, i - 51)
Next
For i As Integer = 0 To juan.Length - 1
AddHandler lkl(i).Click, AddressOf lkl_Click
Next
Me.Controls.Add(tlp)
tlp.BringToFront()
End Sub
Private Sub tsb_Click()
If Me.tlp.Visible Then
Me.tlp.Visible = False
Return
End If
Me.tlp.Visible = True
End Sub
Private Sub lkl_Click(sender As Object, e As EventArgs)
Dim s As String = CType(sender, LinkLabel).Text
Me.selecthb(s)
Me.tlp.Visible = False
End Sub
Private Sub selecthb(ShortName As String)
Dim ChapterSN As Integer = 0
Dim VerseSN As Integer = 0
While ChapterSN = 0 '条件无限循环
Dim s As String = InputBox("输入章数", ShortName, "1") '定义输入框
If s = Nothing Or s.Equals("") Or s.Length > 3 Then '判断如果输入的不是空或者不是空字符串或者长度大于三才可以跳出循环
Continue While
End If
ChapterSN = Val(s) '章数转换为整数
End While
While VerseSN = 0
Dim s As String = InputBox("输入节数", ShortName & "第" & ChapterSN & "章", "1")
If s = Nothing Or s.Equals("") Or s.Length > 3 Then
Continue While
End If
VerseSN = Val(s)
End While
Me.rtb.Hide()
Me.rtb.Clear()
Me.rtb.SelectionColor = Color.OrangeRed
Me.rtb.AppendText("《" & ShortName & "》" & "第" & ChapterSN & "章" & vbVerticalTab)
Using con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bibleNosound.dat;Persist Security Info=True;Jet OLEDB:Database Password=pasitoldata")
Using cmd As OleDbCommand = New OleDbCommand("select * from bible, bibleid where bible.VolumeSN = bibleid.SN and FullName = @ShortName and ChapterSN = @ChapterSN and VerseSN >= @VerseSN", con)
cmd.Parameters.AddWithValue("ShortName", ShortName) : cmd.Parameters.AddWithValue("ChapterSN", ChapterSN) : cmd.Parameters.AddWithValue("VerseSN", VerseSN) : con.Open()
Using sdr As OleDbDataReader = cmd.ExecuteReader()
Dim i As Integer = 0
While sdr.Read()
Me.rtb.SelectionColor = Color.White : Me.rtb.AppendText("(" & sdr("VerseSN") & ")" & vbTab)
If i Mod 3 = 0 Then '隔行变色
Me.rtb.SelectionColor = Color.Cyan
ElseIf i Mod 3 = 1 Then
Me.rtb.SelectionColor = Color.Magenta
Else
Me.rtb.SelectionColor = Color.Yellow
End If
Me.rtb.AppendText(sdr("strjw") & vbVerticalTab) '每次循环追加新内容
i += 1
End While
End Using
End Using
End Using
Me.rtb.Select(0, 0)
Me.rtb.Focus()
Me.rtb.Show()
Me.rtb.Focus()
Me.rtb.Select(0, 0)
End Sub
End Class
10-30
584