> 飛鷹 撰寫於文章 <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
超過一層的話, 就要記錄使用者做了哪些事.....