簡體   English   中英

從 C# 中的類調用函數

[英]Call function from a class in C#

我使用CefSharp作為圖形界面,我想在用戶按下“關閉”按鈕時關閉窗口。 現在我必須調用函數close(); 從函數exit(); ,這是CallbackObjectForJs類的內部。 我該怎么做?

ChromiumWebBrowser browser;
public void close()
{
    this.Close();
}
private void form2_Load(object sender, EventArgs e)
{
    browser = new ChromiumWebBrowser("www.myurl.com");
    browser.RegisterJsObject("csalert", new CallbackObjectForJs());
    this.Controls.Add(browser);
}
public class CallbackObjectForJs{
    public void alert(string msg){
        MessageBox.Show(msg);
    }
    public void exit() {
        close(); //that not works
    }
}

不能直接使用close ,但是可以使用一個小技巧,將實例傳遞給CallbackObjectForJs的構造方法

ChromiumWebBrowser browser;
public void close()
{
    this.Close();
}
private void form2_Load(object sender, EventArgs e)
{
    browser = new ChromiumWebBrowser("www.myurl.com");
    browser.RegisterJsObject("csalert", new CallbackObjectForJs(this));
    this.Controls.Add(browser);
}

public class CallbackObjectForJs{

    Form _form;

    public CallbackObjectForJs(Form form){

        _form = form;
    }

    public void alert(string msg){
        MessageBox.Show(msg);
    }
    public void exit() {
        _form.close(); 
    }
}

暫無
暫無

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

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