加载后获取WinForm的屏幕截图

时间:2012-08-21 09:16:03

标签: c# arguments screenshot

我有一个截图应用程序,用户可以在其中传递命令行参数,并根据这些参数确定表单的行为。

我正在尝试在表单加载后截取屏幕截图,但是我具有在InitializeComponent();之后执行此操作的功能。像这样 -

if (counts > 0)
        {
            generateScreenshotButton_Click(null, null);

            button2_Click(null, null);
        }

我的问题是这些函数在>表单加载之前触发。因此屏幕截图是空白的。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用MainForm Loaded事件? 在那个事件处理程序做你的东西? :)

或者可能使用Shown事件?

答案 1 :(得分:1)

Load文件中添加Form.cs个事件。

InitializeComponentForm Load之间存在差异。请参阅What does InitializeComponent() do, and how does it work in WPF?它适用于WPF,但在Windows窗体中是相同的。

试试这段代码:

public Form1()
        {
            InitializeComponent(); //this is the InitializeComponent method. this This method locates a URI to the XAML for the Window/UserControl that is loading, and passes it to the System.Windows.Application.LoadComponent() static method. 
            this.Load += new EventHandler(Form1_Load); //this create Load Form event
        }

        void Form1_Load(object sender, EventArgs e) //after your form is completely loaded, your program will run the code from here...
        {
            //your code goes here
        }

希望我帮助过你。