Message="未將對象引用設(shè)置到對象的實例。"
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)清流,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
Source="掃雷"
StackTrace:
在 WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) 位置 C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\掃雷\掃雷\Form1.vb:行號 21
在 System.EventHandler.Invoke(Object sender, EventArgs e)
在 System.Windows.Forms.Form.OnLoad(EventArgs e)
在 System.Windows.Forms.Form.OnCreateControl()
在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
在 System.Windows.Forms.Control.CreateControl()
在 System.Windows.Forms.Control.WmShowWindow(Message m)
在 System.Windows.Forms.Control.WndProc(Message m)
在 System.Windows.Forms.ScrollableControl.WndProc(Message m)
在 System.Windows.Forms.ContainerControl.WndProc(Message m)
在 System.Windows.Forms.Form.WmShowWindow(Message m)
在 System.Windows.Forms.Form.WndProc(Message m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message m)
在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
在 System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)
在 System.Windows.Forms.Control.SetVisibleCore(Boolean value)
在 System.Windows.Forms.Form.SetVisibleCore(Boolean value)
在 System.Windows.Forms.Control.set_Visible(Boolean value)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.Run(ApplicationContext context)
在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
在 WindowsApplication1.My.MyApplication.Main(String[] Args) 位置 17d14f5c-a337-4978-8281-53493378c1071.vb:行號 81
在 System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
通過向文本框傳遞EM_LINEFROMCHAR消息可以得到光標(biāo)所在的行號:
contst
EM_LINEFROMCHAR
=
0xC9
Dim
I
as
Long
I
=
SendMessage(textBox1.Hwnd,
EM_LINEFROMCHAR,
-1,
0)
求行:
RichTextBox1.GetLineFromChar(RichTextBox1.SelStart)+1
這個代碼呢,我的理解呢,是獲取在selstart的地方的行數(shù)。一般來講selstart的地方都是光標(biāo)的地方,然后會給你返回line。不過返回的時候要自己加1。不是很懂這個語法,有懂得可以教我一下
以上是求行數(shù)。
求列:
For i = 0 To RichTextBox1.SelStart
If RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) - RichTextBox1.GetLineFromChar(RichTextBox1.SelStart - i) 0 Then Exit For
j = j + 1
Next i
這個for循環(huán)呢,講的是檢查這一行光標(biāo)前有多少個列,然后用J輸出列的個數(shù)。
因為VB6.0沒有RichTextBox1.GetFirstCharIndexOfCurrentLine這種語法。所以就得自己模擬這個過程。
具體怎么檢查的呢,首先將 i 從0循環(huán)到光標(biāo)處,
如果 【光標(biāo)字符數(shù)】處的行數(shù) 減去 【光標(biāo)字符數(shù)減去 i 個字符數(shù)】處的行數(shù)小于0了,我寫了個不為零。但此時寫小于零就可以。那么代表著換行了,同時也代表著光標(biāo)到上一行之間有多少字。用j存儲循環(huán)次數(shù),得出對應(yīng)列數(shù)。(我們中文習(xí)慣是叫第一列,但程序?qū)嶋H上是第零列,但在循環(huán)的時候就注意到并解決這個問題了)
如果你替換寫法,例如
If RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) - RichTextBox1.GetLineFromChar(RichTextBox1.SelStart + i) 0 Then Exit For
j = j + 1
Next i
這個 J 就對應(yīng)著光標(biāo)到該行結(jié)尾有幾個字符了,如果有需要可以使用,但一般不需要。
那么就像上面說的那樣,行列都求出來了,最后用事件和TEXT或者caption表現(xiàn)出來就好了
至于說總行數(shù)
RichTextBox1.GetLineFromChar(Len(RichTextBox1.Text)) + 1
通過對最后一個字符的位置(總長度)的行來判斷唄,不過也得加一。