我已經編寫了以下函數,該函數在文本框中的每個按下鍵事件時觸發。這個想法是讓用戶輸入特殊字符(西班牙語動詞綴合測試應用的重音元音)。當光標位於輸入文本的末尾時,它可以很好地工作,但如果用戶試圖返回並在控件中間編輯一個字母,特殊字符仍會出現在最後。我知道這是因爲我使用的是AppendText
,但我看不到任何像InsertText
這樣的插入文本的插入點。什麼是正確的方法來做到這一點?捕捉EVT_KEY_DOWN後在光標處添加文本(不在行尾)
def SpecialChars(self, e):
vowels = {65: 225, 69: 233, 73: 237, 79: 243, 85: 250}
key = e.GetUniChar()
if self.last_key_down == 'accent' and key in vowels.keys():
self.answer_txt.AppendText(unichr(vowels[key]))
self.last_key_down = 'none'
elif key == 39:
self.last_key_down = 'accent'
else:
self.last_key_down = 'none'
e.Skip()
我想我不得不使用'SetInsertionPoint'但'WriteText'做什麼,我需要。在問這個問題之前,不知道我錯過了它。 –