WinForms C++ 如何检测文本自上次保存后发生了变化?
WinForms C++ How to detect that text has changed since it was saved last time?
我正在使用 Windows Forms 和 C++ 开发记事本。现在我正在尝试设置 TextChanged 事件,所以如果没有要保存的更改(在关闭应用程序之前),程序不应该询问用户是否要保存他的文档。
当我在处理 OnClosing 方法时,它就像:
protected: virtual void OnClosing(CancelEventArgs^ e) override
{ // code here }
但是 TextChanged 不是一个方法,它是一个事件。
文档说我可以使用这个:
public:
event TextChangedEventHandler^ TextChanged { // code here }
但是我的 Visual Studio 说 TextChangedEventHandler 未定义。
有什么方法可以检测到文本自上次保存后发生了变化吗?我唯一的想法是创建一个新的字符串变量;每次将文本保存在文件中时,程序都会将文本保存到变量中。
最后,应用程序将检查 TextBox 和变量中的文本是否相同,但恐怕它会减慢应用程序的速度。
如有任何帮助,我将不胜感激。
首先我设置了变量:
private: bool TextChanged = false;
通过单击文本框和属性,我们可以找到一个 TextChanged 事件。单击两次我们将代码添加到我们的 .h 文件,然后我们应该标记文本更改时应该发生什么,在这种情况下:
private: System::Void tresc_TextChanged(System::Object^ sender,
System::EventArgs^ e)
{
TextChanged = true;
}
最后我加了
TextChanged = false;
在我需要的每一个方法中,例如保存或打开一个新文件。
我正在使用 Windows Forms 和 C++ 开发记事本。现在我正在尝试设置 TextChanged 事件,所以如果没有要保存的更改(在关闭应用程序之前),程序不应该询问用户是否要保存他的文档。
当我在处理 OnClosing 方法时,它就像:
protected: virtual void OnClosing(CancelEventArgs^ e) override
{ // code here }
但是 TextChanged 不是一个方法,它是一个事件。
文档说我可以使用这个:
public:
event TextChangedEventHandler^ TextChanged { // code here }
但是我的 Visual Studio 说 TextChangedEventHandler 未定义。
有什么方法可以检测到文本自上次保存后发生了变化吗?我唯一的想法是创建一个新的字符串变量;每次将文本保存在文件中时,程序都会将文本保存到变量中。 最后,应用程序将检查 TextBox 和变量中的文本是否相同,但恐怕它会减慢应用程序的速度。
如有任何帮助,我将不胜感激。
首先我设置了变量:
private: bool TextChanged = false;
通过单击文本框和属性,我们可以找到一个 TextChanged 事件。单击两次我们将代码添加到我们的 .h 文件,然后我们应该标记文本更改时应该发生什么,在这种情况下:
private: System::Void tresc_TextChanged(System::Object^ sender,
System::EventArgs^ e)
{
TextChanged = true;
}
最后我加了
TextChanged = false;
在我需要的每一个方法中,例如保存或打开一个新文件。