Bonjour

Je testais un de vous programme permettant de sauvegarder un fichier texte.
J'ai bien compris le code (en même temps c'est pas trop compliqué) ...mais bref ça compile bien, j'entre un texte dans le richtextbox, que clique sur boutton1 mais au moment où je clique sur "ok" dans le messsage box sauvegarder, j'ai l'exception suivante :


An unhandled exception of type 'System.NullReferenceException' occurred in System.Windows.Forms.dll

Additional information: Object reference not set to an instance of an object.
euh là je beug complètement

Je comprends pas pourquoi ????!!! Si vous avez des réponses je suis preneur !

je vous remets le code du fichier form1.h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
 
#pragma once
 
 
namespace sauver {
 
	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;
	using namespace System::IO;
 
	/// <summary>
	/// Summary for Form1
	///
	/// WARNING: If you change the name of this class, you will need to change the
	///          'Resource File Name' property for the managed resource compiler tool
	///          associated with all .resx files this class depends on.  Otherwise,
	///          the designers will not be able to interact properly with localized
	///          resources associated with this form.
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: Add the constructor code here
			//
		}
 
	protected:
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::RichTextBox^  richTextBox1;
	protected: 
	private: System::Windows::Forms::Button^  button1;
 
	private: System::Windows::Forms::SaveFileDialog^  saveFileDialog1;
 
	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(void)
		{
			this->richTextBox1 = (gcnew System::Windows::Forms::RichTextBox());
			this->button1 = (gcnew System::Windows::Forms::Button());
			this->SuspendLayout();
			// 
			// richTextBox1
			// 
			this->richTextBox1->Location = System::Drawing::Point(45, 171);
			this->richTextBox1->Name = L"richTextBox1";
			this->richTextBox1->Size = System::Drawing::Size(176, 56);
			this->richTextBox1->TabIndex = 0;
			this->richTextBox1->Text = L"";
			// 
			// button1
			// 
			this->button1->Location = System::Drawing::Point(108, 123);
			this->button1->Name = L"button1";
			this->button1->Size = System::Drawing::Size(97, 26);
			this->button1->TabIndex = 1;
			this->button1->Text = L"button1";
			this->button1->UseVisualStyleBackColor = true;
			this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
			// 
			// Form1
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(292, 266);
			this->Controls->Add(this->button1);
			this->Controls->Add(this->richTextBox1);
			this->Name = L"Form1";
			this->Text = L"Form1";
			this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
			this->ResumeLayout(false);
 
		}
#pragma endregion
	private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
			 }
			 private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
{
	// Demande de confirmation
	if (MessageBox::Show(this, 
			"Sauvegarder le document?",
			"Sauvegarde", 
			MessageBoxButtons::YesNo,
			MessageBoxIcon::Question) == Windows::Forms::DialogResult::No)
		return;
	// Sauvegarde du document
	saveFileDialog1->Title = "Sauvegarde";
	saveFileDialog1->DefaultExt = "txt";
	saveFileDialog1->Filter = "fichiers textes (*.txt)|*.txt|Tous les fichiers (*.*)|*.*";
	saveFileDialog1->FilterIndex = 1;
	// Ouverture boite de dialogue Enregistrer
	if (saveFileDialog1->ShowDialog(this) == Windows::Forms::DialogResult::OK)
	{
		// StreamWriter pour écrire dans le fichier sélectionné
		IO::StreamWriter ^sw = gcnew IO::StreamWriter(saveFileDialog1->OpenFile(), System::Text::Encoding::Default);
		try
		{
			for (int i=0; i<richTextBox1->Lines->Length; i++)
				sw->WriteLine(richTextBox1->Lines[i]);
		}
		finally
		{
			// Fermeture writer
			if (sw!=nullptr)
				sw->Close();
		}   
	}
}
	};
}
merci à toi

ps : merci pour les liens cf : bouton parcourir