2010-06-14 38 views
2

我有一个问题,我有一些动态button.and我想存储整数值。如何在运行时在按钮中存储值?

,并获得该按钮的那个点击事件值我怎么能实现它提前 沙善

DataView dv = new DataView(dtCat, "PK_CATEGORY_ID IN(" + categoryIds.ToString() + "0)", "PK_CATEGORY_ID", DataViewRowState.CurrentRows); 

foreach (DataRowView rr in dv) 
{ 
    //MessageBox.Show(rr[0].ToString() + "------------" + rr[1].ToString()); 

    Button b2 = new Button(); 

    //b2.Name = rr[0].ToString(); 
    b2.Name = ""; 
    b2.Height = 200; 
    b2.Width = 200; 
    b2.Margin = new Thickness(0, -100, 0, 0); 
    b2.HorizontalAlignment = HorizontalAlignment.Left; 
    b2.Content = rr[1].ToString(); 
    b2.Background = System.Windows.Media.Brushes.Pink; 
    b2.Click += new RoutedEventHandler(b2_Click); 
    btncanvas.Children.Add(b2); 
    Canvas.SetLeft(b2, b2.Width * i); 
    i = i + 1; 
    MessageBox.Show(rr[0].ToString()); 
    b2.Tag = rr[0].ToString(); 

} 


void b2_Click(object sender, RoutedEventArgs e) 
{ 
    Button clicked = (Button)sender; 

    categoryname = clicked.Name; 
} 

回答

2

Tag财产

感谢可能是你想要的东西。

你已经在使用它在你的榜样,但只是有:

b2.Tag = integerValue; 

然后在点击处理程序使用Convert.ToInt32(object)方法获取整数值回:

int retrievedValue = Convert.ToInt32(clicked.Tag); 
+0

但其给出错误that..Specified转换是无效的。 – Shashank 2010-06-14 11:08:42

+0

thk它工作 – Shashank 2010-06-14 11:13:57

+0

@SHASHANK - 我已经纠正了代码。我打字时没有访问Visual Studio;) – ChrisF 2010-06-14 11:14:06

相关问题