1  在我的程序里从数据库中调用数据动态生成了很多按键,数据库里关于按键信息的表单有两个字段,一个是bName,一个是bValue .button的text属性存放bName字段的内容,但是我发现bValue字段的内容却没有地方存放,不知道各位有没有方法解决这个问题。2     private void buttonItem14_Click(object sender, EventArgs e)
        {
            MessageBox.Show(sender.ToString());
        }  
而我用上面的方法只能取道button的text属性,怎样才能取得其他属性呢?两个问题,请赐教

解决方案 »

  1.   

    是否可以把两个属性都显示在button的text中:button.Text = bName + Convert.ToString(bValue);不知道这样楼主能不能用。实际上把楼主需要显示的变量转为String型就可以了。具体的格式楼主可以自己定制。
      

  2.   

    第二个问题我已经找到了解决方法,直接强制类型转换sender就可以了关于第一个问题是这样的。bName我想作为按键的text来显示出来,而bValue我不想显示出来,只想作为一个隐含的数据,当按键被点击的时候,再把此数据传递给别的控件来使用。
      

  3.   

    可以用Tag属性存储任何object类型的数据,可以这么写:
    private void buttonItem14_Click(object sender, EventArgs e) 
    {
        Button btn = (Button)sender;
        if (btn != null)
        {
            MessageBox.Show(btn.Tag.ToString());
            MessageBox.Show(btn.Text);
        }
    }
      

  4.   

    另外
    class MyClass
    {
       ...
    }存储时MyClass c1 = new MyClass();
    button1.Tag = c1;调用时
    MyClass c2 = (MyClass)(((Button)sender).Tag);
      

  5.   

    麻烦Snowdust写出如何给tag赋值的语句
      

  6.   

    唉,这个问题不知道怎么说了,楼上的兄弟都说了可以使用 tag 属性了,还要给代码,实在是 。
    xxx.Tag 可以存放各种数据,使用也很简单啊比如你从数据库中获取了一个 button 对应的 DataRow,则可以将 DataRow 赋值给 btnItemCtl.Tag = rowItem0;使用时,
    private void buttonItem14_Click(object sender, EventArgs e)
    {
        Button btn = (Button)sender;
        if (btn != null)
        {
            DataRow row = (DataRow)btn.Tag;
            MessageBox.Show(row["ColumnName"].ToString());
            MessageBox.Show(btn.Text);
        }
    }一切从基础开始吧,脚踏实地的进行。
      

  7.   

    问题已经解决了,多谢Snowdust,原来tag是做这个用的,受教了。同时也谢谢AloneSword,谢谢你的解答