2017-09-03 5 views
1

私はVC++でWindowsフォームを作成していますが、Paintイベントを他の関数やイベントに呼び出す方法については数多くの話題がありますが、C#やそれは私にとってはうまくいかないか、私が理解できるコードの実際の構文を説明するものではありません。私はまだプログラミングのより詳細な側面を学んでいるので、Validate()を使用するように指示するだけでは大したことはありません。VC++がボタンイベントにPaintイベントを呼び出す

private: System::Void Stand_wheel_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) 

私はペイントイベントを持っています。これにはif文があります。この文は、絵画で使用されるポイントを変更するために特定の基準が満たされているかどうかを読み込みます。

private: System::Void button3_Click_1(System::Object^ sender, System::EventArgs^ e) 

そして、私の絵をトリガーしたいボタンをクリックしてください。私はStand_wheel_Paintの名前を使用しようとしましたが、それはエラーでいっぱいです。私はボタンのイベントの下でそれを取得するために私の知識にほとんどすべてを試したと私はできません。私はまた、古いペイントを消去して現在の作業をやり直さなければならないことを知っていますが、私が見つけたものはほとんどそこにいますが、C#のものです。私は誰かが提供できるあらゆる助けを愛するだろう。

using (// <- I get an error on this parantheses 
var g = Graphics.FromImage(Stand_wheel.Image)) 
       { 
        e->Graphics->DrawLines(pen, points); 
        Stand_wheel.Refresh(); 
       } 

これは解決策に近いようですが、まだエラーがあります。

+0

タスクのC++ - cliを中止し、他のオプションや言語を調べることを検討することもできます。 – Ron

+0

私は正直なところC#に移りましたが、私を止める唯一のことは、クラスを始めたばかりなので、勉強して躊躇しています。 –

答えて

0

ブロックはC#にのみ存在し、決定的な破壊がないため必要です。標準的なC++のように、C++/CLIはそうです。トラッキングハンドルではなくref classタイプの変数を宣言すると、その変数が有効範​​囲外になると、そのDisposeメソッドが自動的に呼び出されます。

いいえusingが必要であり、C++/CLIアプローチはC#よりはるかに強力です。例えば、C++/CLIの決定論的破壊は、クラスメンバーのデータを地元の人々と同じように簡単に処理します。

関連する問題