小编ros*_*ead的帖子

防止WebBrowser控件窃取焦点?

有没有办法阻止WebBrowser控件导致其父窗体自带到前面?

如果使用InvokeScript方法调用在主父文档中的iframe上调用focus()的JavaScript函数,则会导致窗口直接将其自身带到前面(或至少导致任务栏图标开始闪烁).有没有办法防止这种情况发生?

更新:

我找到了问题的临时答案.

当触发WebBrowser的父Form的Deactive事件时,我从其容器中删除WebBrowser,并在再次激活其旧的父窗体时重新添加它.

这有点hacky,但它确实有效.不过,我愿意接受任何更好的建议.

.net javascript browser focus

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

Visual Studio 2010随机无法调试WCF服务

我在Windows 7 x64机器上运行Visual Studio 2010,偶尔VS给我的旧版"远程程序无法调试.这通常表明调试尚未在服务器上启用"错误很多人们问起.

不过,我的问题是它似乎只能随机执行此操作(可能是几分钟到几个小时),并且在我已经成功调用该服务之后.它不会阻止服务工作.它仍然返回值并且不会抛出任何错误.唯一的区别是每次我开始调试我的应用程序时都会弹出恼人的对话框.

我应该提一下,我正在从WPF应用程序连接WCF服务.如果我启动网站服务是其中的一部分,我不会得到对话框.

我试过的一些不起作用的东西:

  • 杀死并重新启动服务器.
  • 在x86中编译Web服务器
  • 启用跟踪,但找不到任何问题.

这只是Visual Studio 2010中的一个错误,还是我缺少的东西?

UPDATE

我注意到,如果我的WPF应用程序在初始化WCF服务时崩溃,似乎会发生这种情况.之后,所有调用WCF服务的尝试都将显示"无法调试"消息,直到我重新启动VS2010.

.net debugging wcf visual-studio-2010

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

在WPF中从FontFamily获取字体名称

我正在为自己制作一个小字体组织/预览应用程序,但是,我很难获得我需要的确切信息.

我发现只需创建一个以字体文件位置为源的新FontFamily对象,就可以加载外部字体.但是,我找不到一种方法来获取字体的特定字体名称.我知道我可以使用FontFamily.FamilyNames可以获得字体的系列名称回来,但是这对我没用的时候我有出现在同一系列的多种字体.我想实际显示特定字体的具体名称.

有没有办法做到这一点?我目前显示文件名,但它非常草率,因为我必须遍历目录中的每个文件并在每个文件上调用Fonts.GetFontFamilies(),这样我就可以得到实际的文件名(FontFamily的Source属性只给出了WPF的临时家族) -name source而不是有用的东西).

.net wpf fonts font-family

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

改变OleDb的表现?

我目前正在尝试使用OleDb/JET将SQL Server数据导出到Excel 2003文件.我最初在控制台应用程序中对导出进行了编码,并且工作得足够快.但是,在ASP.Net请求期间运行相同的代码大约需要三倍的时间.具体来说,它在调用OleDbCommand.ExecuteQuery期间放慢速度,这是将记录插入Excel文件.

两者之间的唯一区别是字面意思是一个在控制台应用程序中运行而另一个在IIS中运行.除此之外,两个应用程序是:

  • 在我的开发机器上运行
  • 从两个应用程序引用的共享dll运行与下面相同的代码
  • 使用相同的连接字符串连接到同一数据库
  • 使用具有相同精确参数值的完全相同的select语句
  • 在我的开发机器上的相同位置创建一个全新的文件并写入它
  • 生成逐字节的相同文件

在ASP.Net中使用OleDb时,我有什么东西本来就很慢,我不知道吗?

更新:这是有问题的代码.控制台应用程序和ASP.Net站点中使用的导入命令是相同的.它们都连接到我的机器本地的数据库,并且这两个应用程序都在我的机器上运行.

public void Convert(IDbCommand importCommand, string savePath, string sheetName)
{
    var excelConnString = new OleDbConnectionStringBuilder();
    excelConnString.Provider = "Microsoft.ACE.OLEDB.12.0";
    excelConnString.DataSource = savePath;
    excelConnString["Extended Properties"] = "Excel 8.0;HDR=Yes";

    using (var dr = importCommand.ExecuteReader())
    {
        var columnCount = dr.FieldCount;

        using (var oleConn = new OleDbConnection(excelConnString.ToString()))
        {
            oleConn.Open();
            var headers = new string[columnCount];
            var formattedHeaders = new List<string>();
            var qs = new List<string>();

            var insertCmd = oleConn.CreateCommand();

            for (var curCol = 0; curCol …
Run Code Online (Sandbox Code Playgroud)

c# asp.net oledb excel

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

OrderedDictionary打破了.NET 4的变化?

前几天,当我们正在努力将项目升级到.NET 4时,我的一位同事遇到了这个问题.

给出以下代码:

 var od = new System.Collections.Specialized.OrderedDictionary();

 od.Add("key1", "value1");
 od.Add("key2", "value2");

 foreach (System.Collections.DictionaryEntry entry in od)
 {
     od[entry.Key] = null;
 }
Run Code Online (Sandbox Code Playgroud)

在.NET 3.5中,将条目设置为null将正常工作.正如预期的那样,密钥仍然在字典中,其匹配值将为null.

在.NET 4.0中,这会抛出InvalidOperationException

收集被修改; 枚举操作可能无法执行.

我想也许OrderedDictionary有一个更改,其中将一个条目设置为null将完全删除它,但是进行快速测试表明当你将它设置为null时,该条目仍然存在.

这是一个没有报道的突破性变化吗?

.net .net-4.0

5
推荐指数
2
解决办法
558
查看次数

在Visual Studio中使用自定义方法时,在视图名称上获取红色下划线

我有很多ASP MVC的扩展方法/辅助类,它们将控制器名称,操作名称或视图名称作为参数(非常类似于默认的HtmlHelper方法).Visual Studio通常使用红色直线强调这些名称,以指示当您使用其中一个内置MVC方法时它们与有效的控制器/操作/视图匹配.有没有办法为我自己的方法获得相同的支持?这是一个不错的小功能,但当我停止使用内置方法时,该功能会慢慢消失.

快速示例:如果已知该视图存在,则在"SomeViewName"字符串下面将有一条红色直线,否则字符串本身将变为红色.

public ActionResult SomeAction()
{
    return View("SomeViewName");
}
Run Code Online (Sandbox Code Playgroud)

这将是我自己的一个方法的示例(它与MVC站点项目本身在一个单独的库中)

// Example action using method
public ActionResult Show(int id) 
{
    return ViewOrNotFound("Show", id);
}

// Example of the method itself
private ActionResult ViewOrNotFound(string viewName, int id) 
{
    var model = DoSomethingToGetModel();
    if (model != null)
    {
        return new ViewResult { ViewName = viewName };
    }
    else 
    {
        return new HttpNotFoundResult();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc resharper visual-studio razor

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

如何点击网站上的按钮?

HTML代码是;

<input id="submit_button" type="submit" value="Convert file" title="Upload video to convert to MP4 format">
Run Code Online (Sandbox Code Playgroud)

如何使用webBrowser控件单击此按钮?

我试过了;

webBrowser1.Document.GetElementById("submit_button").InvokeMember("onclick"); // click convert video button
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

谢谢.

c#

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

如何在 Fluent nHibernate 中对 HasMany 映射进行额外过滤?

在我正在进行的一个项目中,我有四个实体(以及其他一些实体),WorkOrder、Crew、CrewAssignment 和 Contractor。他们的关系是这样的:

  • 一个工作订单有一个承包商,可以更改
  • 一个船员只有一个承包商
  • 一个 CrewAssignment 只有一个 Crew
  • 一个工作订单有许多 CrewAssignments

我遇到的问题是设置 WorkOrder 可以有多个 CrewAssignments 的最后一部分。我想要做的是确保 WorkOrder.CrewAssignments 属性只返回与工作订单具有相同承包商的 CrewAssignments。或者,不那么冗长,“WorkOrder.Contractor == CrewAssignment.Crew.Contractor”。

我唯一能想到的就是这个,但它抛出了一个关于 x 变量未定义的异常。

HasMany(x => x.CrewAssignments).KeyColumn("WorkOrderID").Where(x => x.Crew.Contractor == x.WorkOrder.Contractor);
Run Code Online (Sandbox Code Playgroud)

做这样的事情甚至可能吗?还是我完全在错误的树上吠叫?谷歌整个上午都在用这个让我失望。有任何想法吗?

c# nhibernate fluent-nhibernate

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