System.Windows.Forms.Application.DoEvents()
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、伍家崗網(wǎng)絡(luò)推廣、重慶小程序開(kāi)發(fā)公司、伍家崗網(wǎng)絡(luò)營(yíng)銷、伍家崗企業(yè)策劃、伍家崗品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供伍家崗建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
Or
My.Application.DoEvents()
處理目前在訊息佇列中的所有 Windows 訊息。
' Usage My.Application.DoEvents()
' Declaration Public Sub DoEvents()
備注
My.Application.DoEvents 方法可以讓您的應(yīng)用程式在執(zhí)行程式碼的同時(shí),也能夠處理可能所引發(fā)的其他事件。My.Application.DoEvents 方法與 DoEvents 方法具有相同的行為。
當(dāng)您執(zhí)行 Windows Form 應(yīng)用程式時(shí)會(huì)建立新表單,表示會(huì)等待處理事件。每一次表單處理事件時(shí) (例如,按鈕點(diǎn)選),便會(huì)處理與該事件相關(guān)聯(lián)的所有程式碼。所有其他事件都會(huì)在佇列中等待。當(dāng)您的程式碼在處理事件時(shí),應(yīng)用程式不會(huì)做出回應(yīng)。例如,如果將其他視窗拖曳至頂端,不會(huì)重新繪制視窗。
如果您在程式碼中呼叫 My.Application.DoEvents,應(yīng)用程式就可以處理其他事件。例如,如果程式碼將資料加入至回圈 (Loop) 中的 ListBox,且會(huì)在回圈的每個(gè)步驟之后呼叫 My.Application.DoEvents,則將其他視窗拖曳至該視窗上方時(shí),便會(huì)重新繪制表單。如果從程式碼中移除 My.Application.DoEvents,則必須等到按鈕的點(diǎn)選事件處理常式完成執(zhí)行之后,才會(huì)重新繪制表單。
您通常會(huì)在回圈中使用此方法處理訊息。
注意事項(xiàng):
My.Application.DoEvents 方法處理事件的方式和表單的方式不太一樣。使用多執(zhí)行緒處理,讓表單直接處理事件。如需詳細(xì)資訊,請(qǐng)參閱 Visual Basic 中的多執(zhí)行緒。
警告:
如果處理使用者介面 (UI) 事件的方法呼叫 My.Application.DoEvents 方法,則在它完成之前可能會(huì)重新輸入方法。發(fā)生這個(gè)狀況的原因是 My.Application.DoEvents 方法會(huì)處理 Windows 訊息,而 Windows 訊息會(huì)引發(fā)事件。
Do循環(huán)由Do和Loop構(gòu)成,但如果只有Do和Loop的話將不停地執(zhí)行Do和Loop之間的語(yǔ)句塊,所以需要使用可選的關(guān)鍵字While或Until以及Eixt Do來(lái)指定循環(huán)的條件以及退出循環(huán).\x0d\x0a關(guān)鍵字While是指當(dāng)條件為True時(shí)執(zhí)行循環(huán),而Until則是在條件變?yōu)門rue之前重復(fù),就你的例子來(lái)說(shuō),用關(guān)鍵字Until給出了X=-1這個(gè)條件,意思就是在X=-1這個(gè)條件不成立的時(shí)候循環(huán)一直重復(fù)執(zhí)行,直到X=-1這個(gè)條件成立了,則結(jié)束循環(huán).\x0d\x0a下面是詳細(xì)的例句解析:\x0d\x0aDo循環(huán)在使用關(guān)鍵字While或Until的時(shí)候有兩種寫(xiě)法,一種是放在開(kāi)頭,一種是放在結(jié)尾,而Eixt Do則是插在循環(huán)體內(nèi)語(yǔ)句塊的任何地方,,用來(lái)在需要的時(shí)候退出循環(huán).\x0d\x0a關(guān)鍵字While或Until的兩種寫(xiě)法見(jiàn)如下格式:\x0d\x0a[第一種]\x0d\x0aDo While(或Until) 條件 '關(guān)鍵字和條件放在開(kāi)頭\x0d\x0a語(yǔ)句塊\x0d\x0aLoop\x0d\x0a這種格式是用關(guān)鍵字While指定的條件為True時(shí)執(zhí)行循環(huán),或用Until在指定的條件變?yōu)門rue之前重復(fù)執(zhí)行循環(huán).\x0d\x0a[第二種]\x0d\x0aDo\x0d\x0a語(yǔ)句塊\x0d\x0aLoop While(或Until) 條件 '關(guān)鍵字和條件放在結(jié)尾\x0d\x0a這種格式是不管條件是否成立,都先執(zhí)行一次循環(huán),然后再判斷條件來(lái)決定是否繼續(xù)循環(huán).\x0d\x0aDo\x0d\x0a If (a * i ^ 2 + b * i + c) * (a * m ^ 2 + b * m + c) 0 Then\x0d\x0a i = m\x0d\x0a End If\x0d\x0aLoop Until Abs(i - s)
回答于?2022-12-11
你確信只循環(huán)一次嗎?我看不像,在最后添加上一句msgbox jishu1,多半顯示3。
是在第二塊代碼中有問(wèn)題,你應(yīng)該把chaxun4 = xlsheet.Range("l1").Value + 2分別放到兩個(gè)條件句中初始chaxun4變量。
因?yàn)樯弦粋€(gè)Do Until atmbianhaop = xlsheet.Range("B" chaxun4).Value 循環(huán)退出后,下一個(gè)循環(huán)一開(kāi)始就符合退出條件了,所以循環(huán)沒(méi)有進(jìn)行了。