2011-02-19 8 views
0

WebBrowser 컨트롤이 팝업되고 URL이 올바르게 표시되지만 어떤 이유로 텍스트 필드에 아무 것도 입력 할 수 없습니다. 텍스트 필드를 클릭하여 포커스를 줄 수 있으며 텍스트를 텍스트 필드에 붙여 넣을 수는 있지만 키보드로 입력 할 수는 없습니다. 이것은 내가 입력 한 URL에 관계없이 발생합니다.WebBrowser 컨트롤 (.NET 2.0) 텍스트 상자에서 키보드 입력을 허용하지 않습니다.

AllowWebBrowserDrop을 false로 설정하지만, 그렇지 않은 경우 WebBrowser 컨트롤과 해당 양식이있는 모든 설정이 표준입니다.

WebBrowser를 사용하는 매우 유사한 코드는 .NET 3.5에서 제대로 작동하지만 .NET 2.0 만있는 API를 사용합니다. 게다가, 이것은 누군가가 작동하지 않는 것을 알았을 것 같은 아주 초보적인 기능처럼 보입니다.

public partial class LoginWindow : Form 
{ 
    Main mainPlugin; 
    public LoginWindow(string loginurl, Main plugin) 
    { 
     this.mainPlugin = plugin; 
     try 
     { 

      //Debug.WriteLine(loginurl); 
      InitializeComponent(); 
      webBrowser1.AllowWebBrowserDrop = false; 
      webBrowser1.Url = new Uri(loginurl); 
     } 
     catch (Exception ex) 
     { 
      //Globals.ThisAddIn.ul.writeExceptionInfo(ex); 
      MessageBox.Show("Error creating the browser. (LB_01) \n \n " + ex.GetType().ToString() + "\n\n" + ex.ToString(), "Error"); 
     } 
    } 

어떤 아이디어 : 여기

은 폼의 생성자는 웹 브라우저가 포함되어있어?

+0

.NET 2.0 API? 그게 뭐야? .NET 3.5에서 작동하지 않는 이유는 무엇입니까? 3.5 버전을 실제로 제거 했습니까? 2.0 버전 만 남았습니까? –

+0

Windows Live mail v9 용 플러그인 개발을 사용하도록 설정하는 맞춤 API입니다. 내 컴퓨터에는 두 가지 API가 있습니다. .NET의 2.0 버전에 연결하면됩니다. 그렇지 않으면 프로젝트가 컴파일되지 않습니다. – Aaron

+1

.NET 3.5를 사용하면 아무런 차이가 없습니다. .NET 3.5는 .NET 2.0의 상위 집합입니다. System.Windows.Forms.dll의 .NET 3.5 버전은 없습니다. –

답변

1

이것은 .NET 2.0의 버그와 관련이있는 것으로 판명되었습니다. 그 이후 .NET 버전 3.5를 기반으로하는 라이브러리를 사용하여 문제없이 시작했습니다.

0

문제가 무엇인지 확실하지 않지만 웹 브라우저 컨트롤에 keypress 이벤트를 추가 한 다음 해당 텍스트를 포커스가있는 텍스트 상자로 리디렉션 할 수 있습니다.

+1

@ user623879 : 웹 브라우저 컨트롤에 Key Press 이벤트가 없습니다. – Anuraj

+0

@Anuraj : [Oh yea, really?] (http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.keypress (VS.90) .aspx) – abatishchev

+0

@abatishchev : 예 http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser_events.aspx. 또한 WebBrowser 컨트롤은 Control 클래스가 아니라 WebBrowserBase에서 상속합니다. – Anuraj

관련 문제