テキストを定義し、後でそれを文字列などとしてではなく、関数の一部として使用するが、プログラムの途中で再定義できるオプションはありますか(定義はプリプロセッサでは行われませんが、ランタイム)?たとえば、C++ Windows フォームに次のコードがあります。
private: System::Void ps1_GotFocus(System::Object^ sender, System::EventArgs^ e)
{
if(this->ps1->Text == L"/ Your text here /") this->ps1->Text = L"";
this->ps1->ForeColor = System::Drawing::Color::FromName( "Black" );
}
private: System::Void ps2_GotFocus(System::Object^ sender, System::EventArgs^ e)
{
if(this->ps1->Text == L"/ Your text here /") this->ps1->Text = L"";
this->ps2->ForeColor = System::Drawing::Color::FromName( "Black" );
}
whereps1
とTextBoxesps2
は、私はそれを使用して灰色の 'Your text here' 文字列を表示し、TextBox をクリックすると入力の準備ができて (TB の場合)、テキストをクリアして入力をblackにします。私はそのような 9 つの TextBoxes を持っていることを念頭に置いて、これをすべてより少ないコードで作成することは可能ですか? その ps を使用するすべての外部のグローバルメソッドを使用して同じコードを試しましたが、ご存知のように、s はプリプロセッサで実行され、プログラムが開始される前に最後の定義 ( ) が定義されます。GotFocus
#define ps ps1
ps_GetFocus()
#define
ps ps9
実行時にスコープ外のテキストを定義する方法はありますか?