2016-07-05 6 views
0

winform에서 label1의 텍스트를 ChromiumWebBrowser의 버튼을 클릭하여 변경하려고 시도했지만 그 텍스트가 변경되지 않았습니다.ChromiumWebBrowser에서 버튼을 클릭하여 winform 컨트롤의 적합성을 변경하는 방법은 무엇입니까?

private void Form1_Load(object sender, EventArgs e) 
{ 
    browser = new ChromiumWebBrowser("http://localhost/pro/test.html") 
    { 
    Dock = DockStyle.Fill, 
    }; 
    this.panel1.Controls.Add(browser); 
    browser.RegisterAsyncJsObject("callbackObj", new Form1()); 
} 

public void changeText() 
{ 
    this.InvokeOnUiThreadIfRequired(() => label1.Text = "show me the money"); 
} 

인 test.html의 코드 : 폼 객체를 등록

<script type="text/javascript"> 
var change = function() { 
    callbackObj.changeText(); 
} 
</script> 
<button id="test-btn" onclick="change()">click me to change text of label1</button> 
+1

마십시오. 객체를 만들고 양식에 대한 참조를 전달하십시오 (간단한 프록시가 유효합니다). – amaitland

+0

귀하의 조언에 감사드립니다. 나는 나의 코드를 향상시킬 것이다. – ladrianbo

답변

0

, 당신은 새로운 보이지 않는 형태를하고 있습니다

에서 Form1.cs의 코드

. 현재 보이는 인스턴스에 대신 "this"를 전달하십시오.

즉, 모든 메서드와 속성이 잠재적으로 노출 될 것이다 바인딩에 대한 귀하의`Form`를 사용

browser.RegisterAsyncJsObject("callbackObj", this); 
+1

대단히 고마워요, 너무 바보 같았어요. – ladrianbo