1
我正嘗試在我的wxWidgets應用程序中創建一個用戶可以在文本框中鍵入內容的情況,並且如果文本框中有一個或多個字符,控件被啓用。因此,我創建了一個事件處理程序,用於檢查事件wxEVT_COMMAND_TEXT_UPDATED上的TextBox-> IsEmpty()。但是,這似乎在文本框中的文本更改發生之前調用。發生更改後有沒有辦法讓事件觸發? 謝謝。在wxWidgets中修改文本之後調用事件處理程序
編輯:我正在使用的代碼。 我正在使用Connect()來設置事件處理,所以沒有事件表來說。這是我使用的代碼:
cur->mTextBox = new wxTextCtrl(mParentFrame, wxID_ANY, wxT(""), wxDefaultPosition, wxDefaultSize);
mParentFrame->Connect(wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(iguiFrame::correctTextBoxes));
correctTextBoxes是我wxFrame派生類中,它調用只包含下面的代碼的函數的公共方法:
if(cur->mTextBox->IsEmpty())
{
wxMessageBox("Empty!");
}
消息框總是彈出「一個字「太晚了。
你的意思是wxTextCtrl :: IsEmpty()? – ravenspoint 2011-01-19 14:56:33
事件在更改後觸發。如上所述,您的代碼應該可以工您將需要發佈實際代碼,以便我們可以查看可能存在的問題。從事件表,事件處理程序和wxTextCtrl構造函數調用開始。 – ravenspoint 2011-01-19 15:02:20