C# 在运行时添加按钮不起作用
我对这段代码没有错误,但窗体在运行时不显示按钮;不知道为什么 代码如下:C# 在运行时添加按钮不起作用,c#,wpf,C#,Wpf,我对这段代码没有错误,但窗体在运行时不显示按钮;不知道为什么 代码如下: private void Btn_Admin_Click(object sender, RoutedEventArgs e) { try { Button BtnTest = new Button(); BtnTest.Name = "Test_Btn"; BtnTest.Content = "Look"; BtnTest.Margin = n
private void Btn_Admin_Click(object sender, RoutedEventArgs e)
{
try
{
Button BtnTest = new Button();
BtnTest.Name = "Test_Btn";
BtnTest.Content = "Look";
BtnTest.Margin = new Thickness(150, 150, 0, 0);
BtnTest.Width = 75;
BtnTest.Visibility = Visibility.Visible;
this.MyGrid.Children.Add(BtnTest);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
设置按钮的位置。和名称按钮是唯一的
如果你在网格中添加按钮,那你就错了。您需要将网格列设置为按钮类型。您使用的是一个奇怪的System.Windows.Forms按钮??! 你从哪里得到的特性,比如。内容和思想性等等?
还要确保您的活动确实启动强> 这个简单的表单类可以很好地工作:
private void TestOverflowButton_Load(object sender, EventArgs e) {
Btn_Admin();
}
private void Btn_Admin() {
try {
Button BtnTest = new Button();
BtnTest.Name = "Test_Btn";
BtnTest.Text = "Look";
BtnTest.Width = 75;
BtnTest.Visible = true;
Controls.Add(BtnTest);
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
这段代码看起来都不错。首先,是否确实要将新按钮实例添加到正确的网格中,是否存在任何行定义/列定义?如果是,请确保已为这些附加属性(Grid.SetRow()等)设置了适当的值。第二种是什么类型的
this.MyGrid
这是一个简单的网格控件还是一个数据网格?在查看提供的代码片段时提出的另一个有趣的问题是,为什么要用try/catch包装这段非常简单和直接的代码,是否预期会发生异常,如果是,具体是什么异常。通常情况下,如果您不希望出现您知道如何处理的异常,则使用try/catch包装代码不是一种好的做法,因为它会“吃掉”所有导致意外行为的异常。按钮是否可能位于可见区域之外?请尝试将其添加到单个单元格,而不是网格本身。代码可以正常工作。还有别的问题。很久以前我做过这样的事情,但是我试了一下,你不需要刷新一下吗?base.refresh();不,他没有一个容器来添加控件。在没有网格的情况下,使用deskop与2012相比是个例外。不知何故,我使用了许多控件和属性,但它们没有出现在这里