none
ラベルとボタンについて RRS feed

  • 質問

  • <使用>
    2005C++を使っています。

    <目的>
    電力管理システムを擬似操作できるよう作っています。

    <基本>
    操作したい機器のチェックボックス入切を選択して
    決定ボタンを押すと、機器ラベルを赤か緑に塗ります。

    // 機器操作決定ボタン
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    // 入選択
    if (radioButton1->Checked == true) label1->BackColor = Color::FromArgb(255, 0, 0);
    // 入状態保持
    if (radioButton1->Checked == true) checkBox1->Checked = "true";
    // 切選択
    if (radioButton2->Checked == true) label1->BackColor = Color::FromArgb(0, 255, 0);
    // 切状態保持
    if (radioButton2->Checked == true) checkBox1->Checked = false;


    <わからないこと>

    ①事故で一旦切れたあと自動で再投入される機器を、
    事故発生ボタンのワンクリックで、
    緑→赤と変化をさせたいのですが、
    入門書に参考になるコードがなく解決できません。
    イフ文の中にタイマーをセットできるのかどうかわからないのと、
    サンプルコードに1秒のとき、2秒のとき
    こうしなさいと命令する手本コードがないから
    やり方がわからないです。
    できれば何秒後にこうなるといったアニメーション動作を
    記述したいのですが。

    ②ラベルのプロパティにTagというのがありますが、
    これを機器状態の変数として利用しようと思いましたが
    うまくいきませんでした。なぜ使えないのかわかりません。
    それで数が増えますが見えないようにしてcheckBoxを利用しています。
    でも格好悪いと思っています。

    ③事故がおきると機器操作がロックになるものがあります。
    それを表現するために
    if (radioButton100->Checked == true) checkBox1->Visible = false;
    とすると間違っているというデバックエラーがでます。
    なぜでしょうか?

    ④フォームにラベルを貼ってれば、
    ポインタはthisを省略して
    if (radioButton2->Checked == true) checkBox1->Checked
    のように簡単ですが、pictureBoxをフォームに張って
    それをフォーム上のボタンから操作しようと思うと
    ポインタで2つの関係を指定する必要がでてきて
    デバックエラーで挫折します。
    ヘルプを読むとeとかデリゲートとか書いてますが、
    この鬼門を徹底解説している本がないような気がします。
    このポインタの渡し方を勉強したいのですが・・・。

     

    2006年12月27日 5:39