比較長 不過支持全部的關(guān)鍵字 直接就可以用了 using System;using System Text;using System Text RegularExpressions;
我們擁有十余年網(wǎng)頁設(shè)計和網(wǎng)站建設(shè)經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計師為您提供的解決方案。為企業(yè)提供成都網(wǎng)站設(shè)計、網(wǎng)站制作、微信開發(fā)、微信平臺小程序開發(fā)、移動網(wǎng)站建設(shè)、HTML5、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計或者設(shè)計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計服務(wù)并滿足您的需求。
namespace Com OSLeague Component{/// summary/// 語法分析器 將所有Code根據(jù)語法進(jìn)行變色/// list type= VB 支持VB NET/list/// list type= CS 支持CS/list/// author掉掉/author/// date 年 月 日/date/// Memo/// 練習(xí)正則表達(dá)式/// /Memo/// /summarypublic class CodeAnalysis{
////定義HTML開始和結(jié)束的語句 用于語法變色//
const string TAG_FNTRED = @ font color= red ;const string TAG_FNTBLUE = @ font color= blue ;const string TAG_FNTGRN = @ font color= green ;const string TAG_FNTMRN = @ font color= maroon ;const string TAG_FNTBLACK = @ font color= black ;const string TAG_EFONT = @ /font ;const string TAG_SPNYELLOW = @ span style= background color: yellow; ;const string TAG_ESPAN = @ /span ;const string TAG_B = @ b ;const string TAG_EB = @ /b ;const string TAG_MENT = @ font colr=# ;const string TAG_EMENT = @ /font ;
//
public CodeAnalysis(){//// TODO: 在此處添加構(gòu)造函數(shù)邏輯//}
/// summary/// 處理VB NET代碼 彩色化 /// /summary/// param name= Code 傳入的Code/param/// returns處理過后的代碼/returnspublic string ParseVB(string Code){////定義VB NET中關(guān)鍵字 將其存為數(shù)組//
string[] VB_Keyword = new string[]{ AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType Date Decimal Declare Default Delegate Dim DirectCast Do Double Each Else ElseIf End Enum Erase Error Event Exit False Finally For Friend Function Get GetType GoTo Handles If Implements Imports In Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing NotInheritable NotOverridable Object On Option Optional Or OrElse Overloads Overridable Overrides ParamArray Preserve Private Property Protected Public RaiseEvent ReadOnly ReDim RemoveHandler Resume Return Select Set Shadows Shared Short Single Static Step Stop String Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until Variant When While With WithEvents WriteOnly Xor };
////設(shè)定轉(zhuǎn)換代碼顏色//
lishixinzhi/Article/program/net/201311/14615
首先你得這段代碼不應(yīng)該放在這個事件里~
因為你輸入新的編號并不觸發(fā)這個事件,這個事件是當(dāng)選擇的索引改變時觸發(fā)的。
還有哦~
你Msgbox(......)這句之后的
If MsgboxResult.Yes Then這是在判斷什么??
其實你這個If實際在判斷(Cbool(MsgboxResult.Yes)=True)
Msgboxresult.Yes是一個常量,轉(zhuǎn)換成 Boolean類型 然后判斷是否是True,這個地方是一個嚴(yán)重的錯誤!
實際你要判斷的是Msgbox(....)這個對話框的返回結(jié)果,對吧。
要這樣:
If Msgbox(......)=MsgboxResult.Yes Then
.....
....
End if
Msgbox返回一個結(jié)果就是MsgboxResult枚舉,這樣判斷才可以。
先指出錯誤,現(xiàn)在說說該怎么辦:
先發(fā)上來,然后再說,我怕一會回答不小心全弄沒了。
代碼改完了,累死我了。
我給改成了2個事件。
很多地方加了注釋,好好看看注釋,差不多就明白了。不會再問。
代碼:
Private Sub ComboBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyUp
If ComboBox1.Items.Contains(ComboBox1.Text) Then
ComboBox1.SelectedIndex = ComboBox1.Items.IndexOf(ComboBox1.Text)
'因為給ComboBox1.SelectedIndex要賦值的話,也該變了Text屬性,所以也觸發(fā)了TextChanged事件,所以那里和ComboBox2同步選項了,下面就不用 ComboBox2.SelectedIndex = ComboBox1.SelectedIndex語句了。
ComboBox1.SelectAll() '這里把剛才所輸入的數(shù)字全部選擇上
ElseIf e.KeyCode = Keys.Enter AndAlso MsgBox("無此學(xué)生,是否添加?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
'我給你改一下,改成輸入完編號后按下回車才算確認(rèn),否則每輸入一個字符都詢問一次,很不好 '這里加上了e,KeyCode=Keys.Enter意思 就是當(dāng)回車的時候并且對話框為是的時候則執(zhí)行下面的語句,這里用了AndAlso而沒用And原因就是如果它不是回車的,那就沒必要詢問,AndAlso就是當(dāng)?shù)谝粭l件都不滿足的時候,就不判斷第二個條件了。
Dim name As String
name = InputBox("請輸入姓名:")
ComboBox1.Items.Add(ComboBox1.Text)
ComboBox2.Items.Add(name)
End If
End Sub
'’TextChanged只有兩種情況,一種是選擇項目后Text改變,一種是用戶輸入的
'’選擇項目的話肯定有此項所以這里寫了這個判斷語句
'’用戶輸入的,也必定觸發(fā)KeyUp事件,所以這里可以不寫另一段If語句,放在那個事件里寫
'’其實keyUp的那段可以放在這里寫,我是為了判斷輸入的是否為回車,要利用KeyUp事件的e參數(shù)的KeyCode屬性,所以放那里了。
Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
If ComboBox1.Items.Contains(ComboBox1.Text) Then
ComboBox2.SelectedIndex = ComboBox1.SelectedIndex
End If
End Sub
Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
Dim pos = RichTextBox1.SelectionStart
Dim i As String = Regex.Matches(RichTextBox1.Text, "\bDim\b").ToString
RichTextBox1.SelectAll
RichTextBox1.SelectionColor = Color.Black
If Regex.IsMatch(RichTextBox1.Text, "\bDim\b") = True Then
For Each mat As Match In Regex.Matches(RichTextBox1.Text, "\bDim\b")
RichTextBox1.SelectionStart = mat.Index
RichTextBox1.SelectionLength = mat.Length
RichTextBox1.SelectionColor = Color.YellowGreen
Next
End If
RichTextBox1.SelectionStart = pos
RichTextBox1.SelectionLength = 0
End Sub
我做了一個更詳細(xì)的正則:
Friend Keys As String =
"\b(#Const|#If|Then|#Else|#Region|Delegate|Namespace|Class|End|Firend|Partial|Module|Interface|Enum|Shared|Overrides|Overloads|Structure|Let|Const|Dim|As|Private|Public|New|Static|Option|Private|Module|IsArray|IsDate|IsEmpty|IsError|IsMissing|IsNull|IsNumeric|IsObject|TypeName|VarType|Me|Option|Explicit|Mod|Like|Is|Not|And|Or|Xor|Eqv|Imp|Clear|Error|Raise|Error|Err|CVErr|On|Error|Resume|IsError|Collection|Add|Remove|Item|DDB|SLN|SYD|FV|Rate|IRR|MIRR|NPer|IPmt|Pmt|PPmt|NPV|PV|Do|Loop|For|Next|For|Each|Next|While|Wend|With|Choose|If|Then|Else|Select|Case|Switch|Call|Function|Property|Get|Property|Let|Property|Set|Sub|Date|Now|Time|DateAdd|DateDiff|DatePart|DateSerial|DateValue|TimeSerial|TimeValue|Date|Time|Timer|CBool|CByte|CCur|CDate|CDbl|CDec|CInt|CLng|CSng|CStr|CVar|CVErr|Fix|Int|Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Object|Atn|Cos|Sin|Tan|Exp|Log|Sqr|Randomize|Rnd|Abs|Sgn|Fix|Int|IsArray|Array|Option|Base|Dim|Private|Public|ReDim|Static|LBound|UBound|Erase|ReDim|DeleteSetting|GetSetting|GetAllSettings|SaveSetting|Chr|Format|LCase|UCase|DateSerial|DateValue|Hex|Oct|Format|Str|CBool|CByte|CCur|CDate|CDbl|CDec|CInt|CLng|CSng|CStr|CVar|CVErr|Fix|Int|Day|Month|Weekday|Year|Hour|Minute|Second|Asc|Val|TimeSerial|TimeValue|StrComp|StrConv|Format|LCase|UCase|Space|String|Len|Format|LSet|RSet|InStr|Left|LTrim|Mid|Right|RTrim|Trim|Option|Compare|Asc|Chr|AppActivate|Shell|SendKeys|Beep|Command)\b"
新聞名稱:vb點虐
中cbool的簡單介紹
轉(zhuǎn)載來源:http://jinyejixie.com/article34/ddisgse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、軟件開發(fā)、網(wǎng)站制作、App設(shè)計、虛擬主機、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)