精華區beta Programming 關於我們 聯絡資訊
> 飛鷹 撰寫於文章 <3SSWgi$k0W@bbs.cs.nthu.edu.tw>... > 請問, 一般的文件編輯器中的 undo 動作, 是如何做成的呢? > 若我要使用 vb 中的 textbox 如何實作它呢? Option Explicit Dim UndoString As String Private Sub cmdUndo_Click() Text1.Text = UndoString End Sub Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) UndoString = Text1.Text End Sub Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) UndoString = Text1.Text End Sub > -------------------------------------------------------------------------- < 發信人: samila.bbs@bbs.kimo.com.tw (自由萬歲), 看板: Programming 標 題: Re: 請問 undo 動作 發信站: 奇摩大摩域 (Sat Jan 30 12:43:22 1999) 轉信站: Ptt!news.ntu!news.mcu!news.cs.nthu!bbsnews.kimo.com.tw!KimoBBS ※ 引述《edwardlin.bbs@bbs.cs.nthu.edu.tw (飛鷹)》之銘言: : 請問, 一般的文件編輯器中的 undo 動作, 是如何做成的呢? : 若我要使用 vb 中的 textbox 如何實作它呢? 在 textbox_change() 的事件內寫入 buffer_text = textbox.text command1_click() 'undo command button textbox.text = buffer_text 不過這個方法適用在 文字很少的時候. 若文字內容很多時 可會拖慢電腦速度, 耗資源. ^_^ -- ※ Origin: 奇摩 大摩域 (bbs.kimo.com.tw) ◆ From: 203.73.234.25 > -------------------------------------------------------------------------- < 發信人: "fumi" <fumi_@tpts5.seed.net.tw>, 看板: Programming 標 題: Re: 請問 undo 動作 發信站: SEEDNet News Service (Mon Feb 1 18:44:32 1999) 轉信站: Ptt!news.ntu!feeder.seed.net.tw!news.seed.net.tw!not-for-mail 飛鷹 撰寫於文章 <3SSWgi$k0W@bbs.cs.nthu.edu.tw>... >請問, 一般的文件編輯器中的 undo 動作, 是如何做成的呢? >若我要使用 vb 中的 textbox 如何實作它呢? 只有一層的話, 很簡單, 對 Windows 有點了解的話, 就會知道 Ctrl-Z 鍵的功能: Private Sub Command1_Click() Text1.SetFocus SendKeys "^Z" End Sub 或是使用 API 函數送出 Undo 訊息: Private Sub Command1_Click() Text1.SetFocus ' 通常"復原"的按鍵是放在 ToolBar 上, 不需要這一行 SendMessage Text1.hwnd, WM_UNDO, 0, 0 End Sub 超過一層的話, 就要記錄使用者做了哪些事.....