보조 양식의 WebBrowser 객체를 사용하여 URL을 열고, 웹로드시 해당 양식을 닫습니다.하지만 문제가 있습니다.열린 MessageBox가 있는지 확인하십시오.
나는 8 초의 Timer()를 가지고 있고, 8 초 후에도 여전히 살아 있다면 폼은 강제로 닫힐 것이다.
웹 브라우저가 좋지 않아 일부 웹에 내비게이터를 업그레이드해야한다는 경고 (alert)가 표시됩니다. WebBrowser 객체에 의해 "alert()"가로드되면 MessageBox처럼 내 응용 프로그램에 표시되므로 먼저 해당 메시지를 닫은 다음 내 탐색기 양식을 닫아야합니다. 기본 폼에서
: 그 내용은
, 내가 이런 짓을
int cont = 0;
void t_Tick(object sender, EventArgs e)
{
cont += 1;
if (cont == 8)
{
var formularios = Application.OpenForms;
for (int i = formularios.Count - 1; i >= 0; i--)
{
if (formularios[i] != this)
{
formularios[i].Dispose();
}
}
t.Enabled = false;
}
}
private void button1_Click(object sender, EventArgs e)
{
t.Enabled = true;
p = new FormNavigator();
p.Navigate("URL HERE");
p.ShowDialog();
}
그것은 나를 위해 작동 "경고()"기능을하지만, 일부 웹은 사용 '확인() "를 함수를 호출하고 OK/Cancel 단추가있는 폼을 열면 Application.OpenForms가이를 감지하지 못합니다.
.NET에서 "확인"대화 상자를 감지하는 방법을 알고 있습니까?
감사합니다.
업데이트
내 웹 브라우저 객체에서이 속성이 :이 같은 NewWindow 이벤트를 처리 한
navigator.ScriptErrorsSuppressed = true;
navigator.AllowWebBrowserDrop = true;
navigator.IsWebBrowserContextMenu = false;
navigator.WebBrowserShortcutsEnabled = false;
그리고 :
private void navivator_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
}
안녕하세요 줄리, 답변에 대한 감사를 구현하여 수행 할 수 있습니다, 기본 ActiveX 컨트롤에서 발생뿐만 아니라 스크립트 오류 모든 대화 상자를 숨 깁니다. 그 속성은 사실로 설정되어 있지만이 목적으로는 작동하지 않습니다. – dank0ne