获取父表单的图标

时间:2017-10-17 20:07:24

标签: c# winforms

我试图将我的子表单图标设置为其父表单的图标。我希望能够做类似的事情......

this.Icon = this.Parent.Icon;

当然这不起作用。有没有一种简单的方法来实现这一目标?

修改

有时一个简单的问题是最好的方法,但在这种情况下,我认为我需要进一步详细说明(至少多一点)......

我目前尝试通过在静态类中调用静态方法来创建新表单。

public static class CustomMessageBox
{

    public static DialogResult Show(string text, string caption)
    {
        //This is one of many methods I use for overloading
        return ShowMessageBox(text, caption);
    }

    private static DialogResult ShowMessageBox(string text, string caption)
    {
        DialogResult dr = DialogResult.None;

        using (var form = new CustomMessageForm(text, caption))
        {
            form.ShowDialog();
            dr = form.MessageBoxResults;
        }

        //Return the results
        return dr;
    }
}

然后我将原始表单Form1放在该表单上,当我想要创建我打电话的新表单时...

CustomMessageBox.Show("This is the messagebox text", "This is it's caption aka title");

所以最后当我创建新表单的时候,#34;父母"目前是CustomMessageBox课程,而不是我的Form1。我认为我这样做的唯一方法就是通过所有者" Form1"对象是CustomMessageBox.Show()方法,但我希望避免这种情况。

2 个答案:

答案 0 :(得分:0)

  

是否有简单方法来实现这一目标? [强调我的]

创建时将图标传递给子窗体。甚至更简单 - 设置它:

Form2 f2 = new Form2 { Icon = this.Icon };//untested!
编辑问题后

编辑

最好使用form.ShowDialog(this);

答案 1 :(得分:0)

尝试使用这个,当我想做同样的事情时为我工作:)

 this.Icon = this.ParentForm.Icon;