小编Kin*_*nus的帖子

C#Web Browser Control阻止父级的Load事件

这可能会令人难以置信的愚蠢,但我无法弄清楚是否:

  • 我是一个白痴
  • 我误解了一些事情
  • MS Web浏览器控件被窃听

我宁愿认为它是后者.

我在WinForms用户控件中有一个Web浏览器控件.它已在设计时添加到控件中,理论上,在控件的Load事件中,它应导航到Google.

似乎很简单.

然而.

public partial class TVHost : UserControl
{
    public TVHost()
    {
        InitializeComponent();
    }

    private void TVHost_Load(object sender, EventArgs e)
    {     
        webBrowser1.Navigate("http://google.co.uk");  
    }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.没有错误,只是没有.插入断点/调试行表明我甚至没有调用Load事件.

此时我决定检查在Designer.cs文件中是否正确设置了Load事件.

 this.Load += new System.EventHandler(this.TVHost_Load);
Run Code Online (Sandbox Code Playgroud)

似乎是合法的.

如果我从表单中删除Web浏览器控件,则会触发load事件.

我不明白这一点,控制如何防止使用它的方法首先触发?

继续,我发现了这个:http: //social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/d6e427b2-9cc9-4318-bb05-11363025e3f7/

TL;链接的DR如下:"如果窗体上的Web浏览器设置为Visible = true,则加载将不起作用"

确实如此,如果我将webbrowser的默认可见性更改为false,则控件的load事件将触发.我可以通过在load事件中设置浏览器的可见性来解决此问题.

private void TVHost_Load(object sender, EventArgs e)
{
    webBrowser1.Visible = true;
    webBrowser1.Navigate("http://google.co.uk");
}
Run Code Online (Sandbox Code Playgroud)

很奇怪.

虽然这个"修复"有效,但我发现它令人难以置信的hacky并且想知道是否有人对这种行为有任何解释?

令人惊讶的是,我在2005年的MS Connect中发现了这个错误 - http://connect.microsoft.com/VisualStudio/feedback/details/116535/when-adding-a-webbrowser-control-to-a-user-control -the-负载意志不火#

c# events webbrowser-control winforms

8
推荐指数
1
解决办法
1734
查看次数

Azure表存储的分区设计

我有一些软件可以在很长一段时间内收集数据,每秒大约200个读数.它使用SQL数据库.我希望使用Azure将大量旧的"归档"数据移动到.

该软件使用多租户类型的体系结构,因此我计划为每个租户使用一个Azure表.每个租户可能正在监控10-20个不同的指标,因此我计划使用指标ID(int)作为分区键.

由于每个指标每分钟只有一个读数(最大值),我计划使用DateTime.Ticks.ToString("d19")作为我的RowKey.

我对这将如何扩展缺乏一点了解; 所以希望有人能够清除这一点:

为了提高性能,Azure将/可能会通过partitionkey拆分我的表,以保持良好和快速.在这种情况下,这将导致每个度量标准一个分区.

但是,我的rowkey可能代表大约5年的数据,所以我估计大约250万行.

Azure是否足够聪明,然后根据rowkey进行拆分,还是我在设计未来的瓶颈?我知道通常不会过早地进行优化,但是像Azure这样的东西看起来并不像平时那么明智!

寻找Azure专家,让我知道我是否在正确的位置,或者我是否应该将我的数据划分为更多的表.

azure azure-storage azure-table-storage

6
推荐指数
1
解决办法
4646
查看次数

将Powerpoint节目嵌入到C#应用程序中

我希望能够将powerpoint演示文稿嵌入到C#表单(WinForms)中.基本上我们有一个52'显示器,我们的想法是在一个角落里我们将有一个PPT循环,然后其他三个角落将显示来自程序本身的信息.

我曾预料到这很简单,但似乎我错了.

我被建议使用WebBrowser控件,但这不起作用,而是将powerpoint文件视为下载,即给我一个"保存,打开"对话框.

有什么建议?

AK

c# powerpoint winforms

5
推荐指数
1
解决办法
1万
查看次数

HandleErrorInfo使用MVC2 - 模型为空?

我有一个MVC 2 Web应用程序,即将发布.到目前为止,我已关闭自定义错误,但我希望它们在我准备好生产时正常工作.

我已经使用以下内容设置了我的web.config:

<customErrors mode="On" defaultRedirect="/Error/">
  <error statusCode="404" redirect="/Error/NotFound "/>
</customErrors>
Run Code Online (Sandbox Code Playgroud)

404完美地工作,NotFound是一个直接映射到View的动作,它只使用我自己的Site.Master文件显示一个非常标准的404页面.

对于除404之外的任何内容,我希望用户能够查看异常详细信息.(这是一个内部应用程序,这样做没有安全风险).

Error默认操作Index设置为返回视图(),我已经定义.我无法弄清楚如何将异常信息传递给View?

看起来很有希望:

http://devstuffs.wordpress.com/2010/12/12/how-to-use-customerrors-in-asp-net-mvc-2/

但是当我使用View时:

<%@ Page Title="" Language="C#" 
    MasterPageFile="~/Views/Shared/Bootstrap.Master"
    Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>
Run Code Online (Sandbox Code Playgroud)

由于HandleErrorInfo为null,错误页面本身会抛出错误.显然,自定义错误中的错误会导致MVC2出现大量问题,结果是黄色的死亡屏幕.

我想我要么错过了博客中的关键内容,要么就没有解释如何让HandleErrorInfo成为除null以外的任何东西,而不为我的每一个控制器/动作设置Error属性.

另外,我知道MVC3可以更好地处理这个问题,我知道Razor非常好.它尚未用于此项目,也不会更改此项目以使用它.所以请不要"使用MVC3"答案.

c# asp.net asp.net-mvc asp.net-mvc-2

5
推荐指数
1
解决办法
3971
查看次数

从查询中的多边形获取空间点列表

我有一个包含各种定义多边形的数据库,这些多边形表示商业园区地图上建筑物的外边界。

如果我在 Management Studio 中执行 Select,我会得到类似于以下的结果:

LocationCode    LocationPolygon
1               POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))
2               POLYGON((10 10, 20 10, 20 20, 10 20, 10 10))
Run Code Online (Sandbox Code Playgroud)

我想得到的是以下内容:

LocationCode    PointX    PointY
1               1         1
1               2         1
1               2         2
1               1         2
2               10        10
etc             etc       etc
Run Code Online (Sandbox Code Playgroud)

在 SQL 查询中使用 SQL Server 从多边形中提取点时,我看不到任何地方?我显然可以取整个多边形,然后在客户端上完成其余的工作,但如果可能的话,我宁愿处理 SQL。

任何帮助指出我正确的方向。

sql-server spatial spatial-query

4
推荐指数
1
解决办法
7331
查看次数

MVC验证消息国际化

例如,我想要这个默认的ASP.NET MVC 4验证消息:The value 'qsdqsdqs' is not valid for Montant用法语显示.

我找到了这个软件包http://nuget.org/packages/Microsoft.AspNet.Mvc.fr/并安装了它,但我该如何让它工作?

我添加<globalization culture="fr-FR" uiCulture="auto:fr" />到web.config并引用了dll,但消息仍然是英文

c# validation internationalization asp.net-mvc-4

3
推荐指数
1
解决办法
1万
查看次数

从using块中返回IQueryable.需要更好的设计

我创建了一个PhoneBook风格的应用程序; 在我的电话簿对象上,我有一个本地成员_site用作过滤器,因为大约有1000个电话号码,分成我组织内的12个站点.使用此方法一次只能检索一个站点.

这是我原来的方法.GUI具有重新排序的数据的方法,所以我把它作为一个IQueryable,因为我想推迟SQL允许过滤要在SQL服务器上,而不是在客户端PC上完成的.

作品

public IQueryable<PhoneNumber> GetPhoneDirectory()
{
    PhoneBookDataContext db = new PhoneBookDataContext())
    return db.PhoneNumbers.Where(d => d.Site == _site);
}
Run Code Online (Sandbox Code Playgroud)

但是,我也在努力保持using声明方面的"最佳实践" .

不起作用

public IQueryable<PhoneNumber> GetPhoneDirectory()
{
    using (PhoneBookDataContext db = new PhoneBookDataContext())
    {
        return db.PhoneNumbers.Where(d => d.Site == _site);
    }
}
Run Code Online (Sandbox Code Playgroud)

正如@justanotheruseryoumay指出的那样,这将导致异常,因为datacontext在访问对象时被释放.

我想我是问,我怎么能保证我的数据上下文是很好的布置,当我不能使用"使用"的语句并在上下文与做不严格知道.

c# linq using-statement linq-to-sql

3
推荐指数
1
解决办法
1423
查看次数

与继承模型一起使用的最佳模式

我有一个模型,即我有一个抽象类(让调用它Vehicle)和几个继承类,如Bike,Motorbike,Car,Van等这基本上是一个真实的世界问题的简化版本.

abstract class Vehicle
    int ID;
    int WheelCount;
    string OwnerName;

class Bike
    DateTime lastSafetyCheck;

class Motorbike
    int EngineCC

class Car
    double EngineSize

class Van
    double StorageCapacity
Run Code Online (Sandbox Code Playgroud)

我在我的系统IEnumerable<Vehicle>中包含了其中的每一个.它包含在线程安全的单例类中,基本上充当内存数据库.

我希望在我的应用程序中有一个方法(在单例或单独的类中),它允许我只查询某种类型的Vehicle.

最初我考虑过这样的方法:

internal IEnumerable<T> GetVehicles<T>() where T : Vehicle
Run Code Online (Sandbox Code Playgroud)

为了我能够提供一个类型T,它将指定我想要检索的类型.我知道我可以使用typeof()来执行逻辑.但我无法弄清楚的是如何回报我的价值观?我基本上都在努力解决方法的内容,我开始认为必须有一个设计模式,这将更有意义.

AK

c# generics inheritance

2
推荐指数
1
解决办法
97
查看次数

为接口强制使用某种类型?

我的一个应用程序中有几个控件,它们都显然扩展了Control类.

我需要其中几个来拥有一些共享接口,所以我创建了一个覆盖共享功能的接口.

有什么办法可以强制我的界面只能被赋予Control的子类吗?

即(伪)

interface IEmbed

class MyControl1 : Control, IEmbed

class MyControl2 : Control, IEmbed

class MyClass : IEmbed
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望编译器在这里失败,因为MyClass尝试实现IEmbed,即使它不是一个控件.

我是以错误的方式解决这个问题还是有办法强制执行此行为?

编辑

我被问到为什么我希望强制执行此行为.

我有一个方法,我想采取任何IEmbed实现,并将其作为子控件添加到另一个元素.

这一切都很好,但Controls.Add()拒绝接受一个I​​Embed对象,这不会编译.

我想如果我告诉编译器实现IEmbed的任何东西必须是一个控件,它可能会工作吗?

c# inheritance

1
推荐指数
2
解决办法
923
查看次数

如何在处理中从ArrayList获取布尔值

我有一个ArrayList"列表",其中包含一个值,true.但是,当我写:

if (list.get(0)==true)

我得到错误"不兼容的操作数类型对象和布尔".是ArrayList.get()方法总是返回object?如果是这样,我怎样才能获得boolean价值?

谢谢.

arrays processing arraylist

1
推荐指数
1
解决办法
5613
查看次数

用于自定义文件类型的文件扩展名是什么?

我有一个程序,在使用过程中创建某些保存文件.从技术上讲,它们是XML文件,但我不想使用.xml扩展名,因为我将修改shell,以便在资源管理器中双击文件时打开我的程序.

对于我可以有效"发明"哪些文件扩展名有什么指导吗?我在任何地方都找不到任何官方指南.

我想用,.senx但我不知道这样做是否安全?

c# windows file-extension file-association

0
推荐指数
1
解决办法
424
查看次数

如何比较2个字符串并找出百分比差异?

我是C#的新手.我有2个字符串,它们代表国际音标字符.

String 1 - ð? ??d f?ks ?z h??g?i 
String 2 - ðæt ?t foks ?n ð? s?n ?e?i 
Run Code Online (Sandbox Code Playgroud)

现在,我需要比较String 1String 2找到多少String 2有所不同String 1.我需要这个值作为百分比值.我怎样才能做到这一点?小代码示例将帮助我很多.对你的帮助表示感谢.

.net c# string compare

0
推荐指数
1
解决办法
1万
查看次数

是否可以以编程方式创建BackgroundWorkers?

我试图让用户通过使用后台工作者来选择可用于执行任务的线程数量.

有没有办法自动创建多达250名后台工作人员?

c# backgroundworker winforms

-1
推荐指数
1
解决办法
1267
查看次数