none
vc++.net 2008 如何用字符串访问按钮控件? RRS feed

  • 问题

  • 有一个按钮控件.名字叫button1, 我要改变属性可以这样写

    button1->BackColor =   System::Drawing::Color::Red;

    如果我在代码中定义一个字符串 String ^str="button1";

    然后,我要用str来完成上面的任务,应该如何写代码?

    (button)str->BackColor =   System::Drawing::Color::Red; 这样写错.

    解决这个问题有其它用途.

    2012年7月5日 3:46

答案

全部回复

  • Dim myControl1 As Control = FindControl("TextBox2")

    VB有这类代码, 可以实现用字符串访问控件.

    2012年7月5日 4:06
  • Control^ btn = FindControl("button1");

    (button^)btn->BackColor =   System::Drawing::Color::Red;


    麻烦把正确答案设为解答。


    2012年7月5日 7:39
    版主
  • 我使用switch---case---结构,

    80多个控件, switch根据实际值对指定控件操作.

    代码很长.

    谢谢你的帮助.

    2012年7月5日 8:30
  •  private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    //     button1->BackColor = System::Drawing::Color::Red;  //这样写OK
                     Control^ btn = FindControl("button1");
                    (button^)btn->BackColor =   System::Drawing::Color::Red;

        }

    1>正在编译...
    1>yy.cpp
    1>c:\documents and settings\zengdq\my documents\visual studio 2008\projects\yy\yy\Form1.h(87) : error C3861: “FindControl”: 找不到标识符
    1>c:\documents and settings\zengdq\my documents\visual studio 2008\projects\yy\yy\Form1.h(88) : error C2065: “button”: 未声明的标识符
    1>c:\documents and settings\zengdq\my documents\visual studio 2008\projects\yy\yy\Form1.h(88) : error C2059: 语法错误 : “)”
    1>生成日志保存在“file://c:\Documents and Settings\zengdq\My Documents\Visual Studio 2008\Projects\yy\yy\Debug\BuildLog.htm”
    1>yy - 3 个错误,0 个警告
    ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

    2012年7月5日 8:42