Tag: winforms

WebBrowser文档转换无效

我的页面上有一个WebBrowser控件。 要在浏览器控件中显示的页面上激活一些javascript,我调用this.myBrowser.Document.InvokeScript(“Test”); 这适用于我的开发盒与IE7,但在一个单独的测试机器上,我收到以下错误: Exception Type: System.InvalidCastException Message: Specified cast is not valid. Source: System.Windows.Forms Stack Trace: at System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation() at System.Windows.Forms.WebBrowser.get_Document() at InteriorHealth.EmbeddedBrowser.frmMain.CardRead(String strData) in E:\Develop\TestProject\frmMain.cs:line 265 at MyTest.frmMain.prtCardReader_DataReceived(Object sender, SerialDataReceivedEventArgs e) in E:\Develop\TestProject\frmMain.cs:line 355 测试机器正在运行IE6。 虽然我不确定,但我猜测IE版本的差异可能是错误的原因。 这听起来不错吗? 我该如何解决这个问题? frmMain.cs的第265行是: this.webKiosk.Document.InvokeScript(ConfigurationState.CardReader.Error.FireJavaScriptMethod); frmMain.cs的第355行是: CardRead(strCardData_m); 我认为WebBrowser对象上的Document属性调用抛出了exception。

Json.Net在列表反序列化期间调用属性getter,导致重复项

我正在使用json.net来实现winform应用程序的memento模式 。 我正在使用memento在失败的数据库事务上回滚对象。 我得到的问题是,当反序列化纪念品时,调用getter而不是setter。 让我来certificate一下: class MyClass { public int ID { get; set; } public string field1 { get; set; } public string field2 { get; set; } private List _someObjects; public List SomeObjects { get { if(_someObjects == null) { _someObjects = LoadSomeObjectsFromDB(); } return _someObjects; } set { _someObjects = value; } […]

为什么CenterToScreen方法将窗体置于光标所在的屏幕上,而不是带有焦点应用程序的屏幕?

我使用的是Visual Studio 2010,C#.NET 4,WinForms。 我的电脑有2台显示器。 当我调用表单的CenterToScreen方法时,表单以光标所在的屏幕为中心。 有谁知道为什么?

C#WebClient – 查看源代码问题

我正在使用C#WebClient将登录详细信息发布到页面并阅读所有结果。 我试图加载的页面包括flash(在浏览器中,它转换为HTML)。 我猜它是闪存避免被搜索引擎捡起来??? 我感兴趣的flash只是文本(不是图像/video)等,当我在firefox中“查看选择源”时,我确实在HTML中看到了我想看的文本。 (有趣的是,当我查看整个页面的源代码时,我看不到HTML中的文本,我想看到。这可能是相关的吗?) 目前,在我发布了我的登录详细信息并将HTML加载回来后,我看到的页面没有显示flash HTML(好像我已经查看了整个页面的源代码)。 提前致谢, 吉姆 PS:我应该指出POST实际上正在运行,我的登录成功。

将表单添加到UserControl – 这可能吗?

通常,控件正被添加到表单中。 但我需要做相反的事情 – 向容器用户控件添加一个Form实例。 这背后的原因是我需要将第三方应用程序嵌入到我自己的应用程序中。 由于复杂性,将表单转换为用户控件是不可行的。

C# – 如何在删除行后刷新DataGridView

在我的代码中,我需要在重复间隔后从DataGridView中删除行,所以当计时器到期时我调用以下函数: private void removeRows(DataGridView dgv) { foreach (DataGridViewRow row in dgv.Rows) { // if some condition holds dgv.Remove(row); } dgv.Refresh(); } 我知道这些行已成功从DataGridView中删除,但它们仍然因任何原因仍保留在显示中。 关于我可能做错的任何提示?

如何在Window窗体中使用UserControl编程C#

我在c#中学习UserControl。 你们可以发布你推荐的网站,以获得这个主题的教程吗? (对于初学者尤其如此)谢谢:)

将数据异步加载到Windows窗体中的DataTable中

我正在修改旧的WinForms / ADO应用程序的数据访问层,以通过异步developerforce rest api使用soql来获取Salesforce对象。 以下方法通常有效,除了我的十三个表例程之一永远不会从AddMyTableRow(System.Data.DataRowCollection.Add())方法返回: public void LoadData() { var tasks = new List<Task> { GetObject1Async(), GetObject2Async(),… GetObject13Async() }; Task.WaitAll(tasks.ToArray()); //do some postprocessing now that I have all the data } async Task GetObject1Async(){ var response = await cnx.QueryAsync(“SELECT foo FROM bar”).ConfigureAwait(false); foreach (var rec in response.Records){ var row = MyDataSet.MyTable.NewMyTableRow(); row.Name = rec.Name; […]

如何在C#中找到运行应用程序的屏幕

如何确定运行应用程序的屏幕?

一个可以从主应用程序启动的WinForms DLL

我创建了一个C#DLL,其中包含一些表单。 (我需要它是一个DLL,而不是Windows应用程序。)如何将其作为Windows应用程序运行? 我应该创建另一个应用程序并加载它吗? 怎么样? 我需要学习什么才能做到这一点? 如果我应该更多地解释我的问题,请告诉我。