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相比是个例外。不知何故,我使用了许多控件和属性,但它们没有出现在这里