Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#文件加载事件未触发_C# - Fatal编程技术网

c#文件加载事件未触发

c#文件加载事件未触发,c#,C#,我想让我的程序从网站上获取国际空间站的纬度和经度,因此我有以下代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Threading; using System.Speech.Synthesis; using System.Windows.Forms; using Syste

我想让我的程序从网站上获取国际空间站的纬度和经度,因此我有以下代码:

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Diagnostics;
 using System.Threading;
 using System.Speech.Synthesis;
 using System.Windows.Forms;
 using System.Net;

 namespace myprogram
 {
        class Program
        {
                static void Main(string[] args)
                {
                       try
                       {
                              WebBrowser browser1 = new WebBrowser();
                              browser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

                              browser1.Url = new Uri("https://isstracker.spaceflight.esa.int/");
                              browser1.Visible = true;
                              browser1.ScrollBarsEnabled = false;
                              browser1.ScriptErrorsSuppressed = true;
                              browser1.AllowNavigation = false;
                       }
                       catch (Exception e) 
                       {
                            Console.WriteLine(e.ToString());
                       }

                       Main(null); //don't know if this is the best way to keep the program from closing
                }
                static void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
                {
                     Console.WriteLine("iss page loaded");
                     if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath)
                         return;
                     string lat = (sender as WebBrowser).Document.GetElementById("isst_lat").InnerText;
                     string lon = (sender as WebBrowser).Document.GetElementById("isst_lon").InnerText;
                     Console.WriteLine("latitude is" + lat + ",longitude is" + lon);
        
                }
        }
 }
当我运行程序时,
WebBrowserDocumentCompletedEvent
不会触发。我一直在寻找解决办法,但没有找到。
如果有人有一个解决方案,请提前感谢。

伙计,你的程序在触发“文档加载”事件之前退出,或者甚至在抛出堆栈溢出异常之前退出(不是rly…我想是超出了最大调用堆栈,我想…不记得了)

现在,回答您的问题:

第一。请参阅,您的程序是控制台应用程序,而不是Windows窗体应用程序。 检查它们之间的差异(和),并注意到它们有很大的不同。 因此,如果您想自己查看web浏览器,应该使用windows窗体应用程序。 相反,如果您只想解析和转换Web请求的响应(我想这里就是这种情况),请使用谷歌“WebClient.DownloadString教程”并享受其中的乐趣

第二。这不是阻止程序关闭的最佳方法。。。既然您已经对它进行了评论(//不知道这是否是阻止程序关闭的最佳方法),我将为您指出一些澄清的方向

在我们程序员习惯于用软木塞瓶塞喝苏打水、赤裸骑马、狩猎食物和其他东西的那一天,程序曾被称为“命令提示符”。。。就像git bash一样,您需要知道在“无用户界面”环境中使用它们的命令

是的!没有用户界面!您必须真正键入每个命令(如单击按钮),并在一行中传递参数(例如,放入文本框或复选框选中状态的内容),才能执行任何操作。。。 这就像永远,但伤疤(经验教训)仍然与我们同在

防止控制台关闭的一种方法(不能告诉你“最好的”!当然可以告诉你我最喜欢的!)是听命令。。。当用户输入文本行时,您检查这行命令是否有效,并告诉他是否有效。如果用户输入有效的“退出”命令,它将关闭。。。(提示:单词“While”和“If”是要实现的实际编程模式)

所以,这是一个“指南答案”,而不是“编程自己完成”。。。如果你需要的话,在这里发表评论,我可以帮你试试。。。
只是一个建议:学习总比听从别人的帮助好。

你试过排除故障吗?至少,试着勾勒出问题的轮廓。因为看到代码,而且只有代码,我能想到许多潜在的问题。你怎么知道它不会启动?这是什么类型的应用程序(Winforms、Console、WPF等)?它是否引发堆栈溢出异常?为什么不直接查询?删除可能导致问题的Main(null)语句。暂时放在Console.Readline()中;阻止。您可以将以下用法添加到块中: