Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

返回列表 發(fā)新帖
查看: 4001|回復(fù): 8
打印 上一主題 下一主題

[ActiveX] TreeView樹(shù)控件兼容性問(wèn)題之奇葩偏方

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2017-3-23 09:03:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 紅塵如煙 于 2017-3-23 09:06 編輯

    Windows系統(tǒng)自帶的通用控件庫(kù) MSCOMCTL.OCX 是一個(gè)很好的東西,尤其是TreeView樹(shù)控件,用來(lái)處理多層級(jí)的樹(shù)形結(jié)構(gòu)數(shù)據(jù)非常有用。由于在Access中沒(méi)有類(lèi)似的控件,沒(méi)有其它代替解決辦法。甚至不像ListView可以用列表框或者子窗體代替,Toolbar可以用按鈕、菜單代替。

    但自從Win7開(kāi)始,不論是Win8、Win10,MSCOMCTL.OCX通用控件庫(kù)中的控件就經(jīng)常出現(xiàn)兼容性問(wèn)題。即開(kāi)發(fā)環(huán)境下的版本號(hào)和使用環(huán)境下的版本號(hào),哪怕只有很小的差別,像6.1.9834和6.1.9818這樣,都會(huì)出現(xiàn)異常不能使用。

    我們這里仍然以TreeView控件為例,不包括本身控件庫(kù)安裝有問(wèn)題不能使用的情況,一般可能會(huì)遇到的兼容性問(wèn)題有會(huì)以下兩類(lèi):

  • 不能響應(yīng)鍵盤(pán)、鼠標(biāo)事件?梢哉<虞d數(shù)據(jù)到樹(shù)控件,但不論是鼠標(biāo)還是鍵盤(pán),均無(wú)法觸發(fā)相應(yīng)的事件,比如在NodeClick事件中寫(xiě)了相應(yīng)處理代碼,但點(diǎn)擊之后沒(méi)有任何反應(yīng)。
  • 鍵盤(pán)、鼠標(biāo)事件一觸發(fā)就報(bào)錯(cuò)。點(diǎn)擊鼠標(biāo)、按鍵,甚至鼠標(biāo)在樹(shù)控件上移動(dòng),事件可以響應(yīng),但一觸發(fā)就報(bào)錯(cuò),導(dǎo)致不能正常使用。
    這些問(wèn)題發(fā)生的頻率非常高!尤其是當(dāng)一些在實(shí)際中已經(jīng)在用的Access程序來(lái)說(shuō),遇到實(shí)在讓人火冒三丈,因?yàn)闃I(yè)務(wù)部門(mén)等著馬上要用呢!這是在坑爹呢還是在坑爹呢!

    對(duì)于這個(gè)問(wèn)題有什么解決辦法呢?總結(jié)下來(lái)不外乎下面幾種:

  • 修改控件庫(kù)。這個(gè)控件庫(kù)是微軟的,第一優(yōu)先是希望微軟能在更新系統(tǒng)時(shí)解決掉該問(wèn)題,但從Win7到Win10,該問(wèn)題仍然頑固地存在,看來(lái)微軟是指望不上了。而我們不可能去修改控件庫(kù),甚至通過(guò)一些破解手段修改了,但會(huì)導(dǎo)致簽名失效,還是不便于使用。
  • 不使用樹(shù)控件。但正如本文一開(kāi)頭說(shuō)的那樣,有些多層數(shù)據(jù)的展示和處理,在用過(guò)了樹(shù)控件之后,現(xiàn)在要讓人不用,實(shí)在難受。就像習(xí)慣了電氣化的現(xiàn)代人,突然沒(méi)電了,要點(diǎn)油燈、蠟燭照明,這!這!這!這日子不過(guò)了!
  • 使用其它第三方樹(shù)控件。其它第三方樹(shù)控件的問(wèn)題在于,有可能是要額外付費(fèi)的。即使找到免費(fèi)的了,由于屬性方法事件等接口不同,還需要重新編寫(xiě)程序。另外使用第三方控件需要安裝,而一些規(guī)范化的企業(yè)里面,是禁止用戶(hù)自行安裝軟件的。

    看到這里你是不是感到絕望了?是不是感覺(jué)自己被掏空了?感覺(jué)不會(huì)再愛(ài)了?
    這么想地話(huà),你還是太年輕,圖樣圖森破!
    世上無(wú)難事,只怕有些人!要相信希望總會(huì)有的,奇跡是會(huì)出現(xiàn)的,在那個(gè)迷茫的午夜,上帝向你走來(lái),賜給了你一道光!
    上帝說(shuō):解決這個(gè)問(wèn)題,需要用到這一招如來(lái)神掌,我現(xiàn)在就將如來(lái)神掌的秘籍傳授給你!

------------------------------------------如來(lái)神掌秘籍分割線(xiàn)--------------------------------------
1. Ctrl+G打開(kāi)立即窗口,輸入以下代碼并回車(chē),將窗體另存為文本文件。
  1. SaveAsText acForm, "Form1", CurrentProject.Path & "\Form1.txt"
復(fù)制代碼
注意不要直接把代碼原樣抄去就用,
要把Form1改成你實(shí)際的窗體名稱(chēng)!
要把Form1改成你實(shí)際的窗體名稱(chēng)!
要把Form1改成你實(shí)際的窗體名稱(chēng)!
重要的事情說(shuō)三遍。

2. 用記事本打開(kāi)剛才生成的文件文件 Form1.txt,找到樹(shù)控件所在的位置(如果內(nèi)容比較多,可以搜索樹(shù)控件名稱(chēng))。

3. 將從 OleData = Begin 這一行開(kāi)始,直到 End 結(jié)束的OleData部分全部選中:

4. 將上面選中的部分替換成附件中的內(nèi)容(由于發(fā)帖限制不能直接放數(shù)據(jù)):

5. 回到Access立即窗口,再次輸入以下代碼并回車(chē),將文本文件加載為窗體:
  1. LoadFromText acForm, "Form1", CurrentProject.Path & "\Form1.txt"
復(fù)制代碼
    打完收工。

    重新打開(kāi)有樹(shù)控件的窗體,你會(huì)發(fā)現(xiàn)惹人厭的樹(shù)控件不能正常使用的問(wèn)題沒(méi)有了!換臺(tái)電腦,也不再出了!

鄭重聲明:
    該方法本公子親測(cè)有效,也用來(lái)救了幾次火。但由于測(cè)試樣本有限,加上本公子也還沒(méi)有完全弄懂原理,所以不保證百分之百有效!因此這里只當(dāng)作一個(gè)偏方分享出來(lái)給大家,僅供參考。



(微軟Activex控件-相關(guān)文章技巧鏈接):
Access TreeView樹(shù)控件兼容性問(wèn)題之奇葩偏方

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)

x

評(píng)分

參與人數(shù) 1經(jīng)驗(yàn) +30 收起 理由
admin + 30 (其它)優(yōu)秀教程、原創(chuàng)內(nèi)容、以資鼓勵(lì)

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

點(diǎn)擊這里給我發(fā)消息

2#
發(fā)表于 2017-3-23 09:18:39 | 只看該作者

回復(fù)

使用道具 舉報(bào)

3#
發(fā)表于 2017-3-23 09:30:57 | 只看該作者
如煙神武!!!
回復(fù)

使用道具 舉報(bào)

4#
發(fā)表于 2017-3-23 09:41:00 來(lái)自手機(jī) | 只看該作者
紅塵威武霸氣外露!
來(lái)自: 微社區(qū)

點(diǎn)擊這里給我發(fā)消息

5#
發(fā)表于 2017-3-27 10:49:18 | 只看該作者
謝謝,謝謝!正在愁

點(diǎn)擊這里給我發(fā)消息

6#
發(fā)表于 2017-3-28 15:01:58 | 只看該作者
saveastext 里面藏著 access 很多秘密!
7#
發(fā)表于 2017-3-30 10:10:32 | 只看該作者
經(jīng)常遇到,試試效果看看。
謝謝紅塵大師。
8#
發(fā)表于 2017-7-25 16:02:11 | 只看該作者
好多謝分享。。。。。。。。

點(diǎn)擊這里給我發(fā)消息

9#
發(fā)表于 2019-5-23 23:08:39 | 只看該作者
謝謝紅塵大師
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 08:38 , Processed in 0.143436 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表