簡體   English   中英

單擊鏈接標簽5秒鍾后保存圖片

[英]saving picture after 5 seconds when a linklabel clicked

它有點難解決..:D首先,您應該解決我的英文:D:D我要保存一個網絡瀏覽器快照,例如://首先:用戶單擊一個鏈接標簽//之后:程序瀏覽我的瀏覽器//最后:5秒鍾后,程序將獲取Web瀏覽器的快照。 我有這個的代碼..

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(linkLabel1.Text);

    ///how can i set after 5 seconds take snapshot
    ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Save("thumb1.png", ImageFormat.Png);
}

對不起,英語不好:(我無法解釋更詳細。編輯:我將嘗試解釋更詳細...這是我的網絡瀏覽器的新標簽頁功能,我希望使用收藏夾屏幕截圖。當用戶打開新標簽頁后,用戶將看到帶有小照片的收藏夾...因此,如果收藏夾中沒有任何圖片,將是第一次。當用戶單擊鏈接時,它將導航到收藏夾,然后在文檔完成時將截取屏幕截圖。 新標簽

我可以從您的帖子和評論中了解到,您有六個LinkLabel (名為linkLabel1linkLabel6 )。 當用戶單擊任何鏈接時,您的WebKitBrowser控件必須導航到URL(鏈接WebKitBrowser的文本),並且在加載文檔時,它必須自動拍攝屏幕截圖。

現在,由於您希望對不同的鏈接標簽執行相同的操作,因此您僅應創建一個事件處理程序來處理不同的鏈接標簽的點擊。 您可以將_LinkClicked()事件附加到任何鏈接標簽。 您還必須在類中定義一些私有字段,其中將包含最后一次單擊的LinkLabel。

private LinkLabel _lastClickedLinkLabel = null;

private void linkLabelX_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    // Cast the sender to a LinkLabel object as you want to know which LinkLabel
    // was clicked on
    var senderLinkLabel = sender as LinkLabel;
    if (senderLinkLabel != null)
    {
        ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(senderLinkLabel.Text);
        _lastClickedLinkLabel = senderLinkLabel;
    }
}

現在,您想在頁面加載后獲取屏幕快照,就必須創建DocumentCompleted事件。 (不要忘記將其附加到您的tabControl!)

private void tabControl1_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Save the screenshot
    // you might want to determine the filename dynamically, otherwise the file will be overwritten
    ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Save("thumb1.png", ImageFormat.Png);

    if (_lastClickedLinkLabel != null)
    {
        // Do something here based upon the _lastClickedLinkLabel
    }
}

請注意,我沒有使用該精確控件的實際經驗,只是使用搜索引擎來查找所有信息。

我在下面做到了這一點,並且可以解決我的問題,但是最后,當我的應用程序正在工作時,我無法更改圖片..當文檔完成時,........

  void Form1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

        if (_lastClickedLinkLabel.Text == linkLabel1.Text)
        {
            ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Dispose();
            ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Save("thumb1.png", ImageFormat.Png);
            // Do something here based upon the _lastClickedLinkLabel
        }
        if (_lastClickedLinkLabel.Text == linkLabel2.Text)
        {
            ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Save("thumb2.png", ImageFormat.Png);
            // Do something here based upon the _lastClickedLinkLabel
        }
        if (_lastClickedLinkLabel.Text == linkLabel3.Text)
        {
            ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Save("thumb3.png", ImageFormat.Png);
            // Do something here based upon the _lastClickedLinkLabel
        }
        if (_lastClickedLinkLabel.Text == linkLabel4.Text)
        {
            ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Save("thumb4.png", ImageFormat.Png);
            // Do something here based upon the _lastClickedLinkLabel
        }
        if (_lastClickedLinkLabel.Text == linkLabel5.Text)
        {
            ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Save("thumb5.png", ImageFormat.Png);
            // Do something here based upon the _lastClickedLinkLabel
        }
        if (_lastClickedLinkLabel.Text == linkLabel6.Text)
        {
            ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).PageScreenshot.Save("thumb6.png", ImageFormat.Png);
            // Do something here based upon the _lastClickedLinkLabel
        }

    }

當點擊鏈接時,.....

private LinkLabel _lastClickedLinkLabel = null;

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var senderLinkLabel = sender as LinkLabel;           
            if (senderLinkLabel != null)
            {
                ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(senderLinkLabel.Text);
                _lastClickedLinkLabel = senderLinkLabel;

            }




        }

        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var senderLinkLabel = sender as LinkLabel;
            if (senderLinkLabel != null)
            {
                ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(senderLinkLabel.Text);
                _lastClickedLinkLabel = senderLinkLabel;

            }
        }

        private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var senderLinkLabel = sender as LinkLabel;
            if (senderLinkLabel != null)
            {
                ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(senderLinkLabel.Text);
                _lastClickedLinkLabel = senderLinkLabel;

            }
        }

        private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var senderLinkLabel = sender as LinkLabel;
            if (senderLinkLabel != null)
            {
                ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(senderLinkLabel.Text);
                _lastClickedLinkLabel = senderLinkLabel;

            }
        }

        private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var senderLinkLabel = sender as LinkLabel;
            if (senderLinkLabel != null)
            {
                ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(senderLinkLabel.Text);
                _lastClickedLinkLabel = senderLinkLabel;

            }
        }

        private void linkLabel6_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var senderLinkLabel = sender as LinkLabel;
            if (senderLinkLabel != null)
            {
                ((WebKitBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(senderLinkLabel.Text);
                _lastClickedLinkLabel = senderLinkLabel;

            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM