如何在调整窗口或容器大小时修复滚动条?

目前在我的应用程序中,我使用HScrollBar和VScrollBar在大图像中进行平移。 显示的图像部分基于滚动条的Value属性。 但是,在调整SplitContainer的大小或调整窗体窗口大小时,滚动条的值不会自动更新,它可能会在屏幕外呈现某些内容。 此时我注意到,如果你单击滚动条的箭头,它会神奇地修复滚动条。 我想知道是否有任何方法来模拟单击滚动条在Form_Resize和SplitContainer_Resize事件处理程序中执行此操作但我找不到任何内容。 必须在所有resize事件中手动调整滚动条的值是缓慢,丑陋,并且不能很好地工作。 我真的很喜欢滚动条在窗口调整时自动修复自己,就像点击它的箭头时一样,但我不确定如何。

从asp.net中动态创建的文本框中获取文本

我整个上午一直在反对这个,所以希望我能得到一些帮助。 基本上我有问题从一些文本框控件获取值我在.net 4中动态创建。 这是应用程序的理想流程。 1)。 用户从下拉菜单中选择一个html文档,该菜单是一个字母的模板。 这个html文档包含格式$ VARIABLENAME $的标签,将用正确的值替换。 2)。 该程序通过模板运行并拉出$ STRING $格式的所有字符串并将它们存储在列表中。 3)。 对于此列表中的每个条目,程序生成一个asp:标签和一个asp:textbox,其中包含基于原始$ VARIABLENAME $字段的唯一ID。 4)。 用户输入替换值,然后点击提交。 5)。 程序用替换值替换所有$ STRING $并输出结果。 一切正常,直到我需要从文本框中获取值。 我很确定它是页面生命周期的一个问题,但是因为在使用从下拉列表中选择所需的模板之前不会生成文本框,所以我不确定如何通过回发使它们持久化以便我可以引用它们。 我错了吗? 在发生回拨事件后,如何访问从下拉事件创建的文本字段? 编辑:这是相关代码的大部分内容。 protected void createTextBoxes(List results) { if (results != null) { foreach (string result in results) { string formattedResult = result.Substring(1, result.Length – 2); formattedResult = formattedResult.ToLower(); formattedResult […]

如何将多个TextReader串在一起?

我有3个TextReaders – StreamReaders和StringReaders的组合。 从概念上讲,它们的串联是单个文本文档。 我想调用一个带有单个TextReader的方法(不在我的控制之下)。 是否有任何内置或简单的方法可以从多个TextReader中连接TextReader? (我可以编写自己的TextReader子类,但它看起来相当多。在这种情况下,我只是将它们全部写入临时文件,然后用一个StreamReader打开它。) 有一个简单的解决方案,我错过了吗?

即使具有管理员权限,Process.kill()在Windows 7 32位中被拒绝

大家好。 我遇到了一个奇怪的问题。 我的应用程序有一个简单的方法,如果IE进入一个状态是它得不到响应这个方法被解雇所有IE进程,然后应用程序重新启动它与IE的工作。 方法代码: foreach (System.Diagnostics.Process exe in System.Diagnostics.Process.GetProcesses()) { if (exe.ProcessName.StartsWith(“iexplore”)) exe.Kill(); } 即使使用管理员权限调试我的应用程序,应用程序有时也会成功运行此方法,有时我会收到错误Access Denied甚至以管理员身份运行。 我甚至编写了我自己的清单文件,指定需要使用管理员权限执行此应用程序,我认为我做对了。 清单代码: 以前有人有这个问题吗? 我怎样才能纠正这个奇怪的问题。 谢谢

FormBorderStyle.None删除Windows 8的本机打开效果

我喜欢在C#中使用我的表格无边框。 所以我使用了这段代码: FormBorderStyle = FormBorderStyle.None; 但它消除了Windows 8的空气动力效果。表单突然打开就像眨眼一样。 我怎样才能带回空气效果?

为什么double.Parse(“0.05”)返回5.0?

我正从App.config中读取一个值; 这是: 我尝试通过以下方式将其转换为双倍: var d = double.Parse(ConfigurationManager.AppSettings[“someValue”]); 而我获得5.0而不是0.05。 你能建议吗? 我做错了什么,我应该如何解析?

如何使用LINQ to Entities获取字节数组长度?

我有一个Document类,它将该文档的数据存储为字节数组。 我需要使用LINQ to Entities来检查数组的大小。 我尝试过以下方法: [long Linq query here…] o.Data.Length < 800000) 问题是我得到以下exception: LINQ to Entities中不支持LINQ表达式节点类型’ArrayLength’。“ 有没有其他方法来检查字节数组的大小?

linq给实体生成了sql

我在ado.netentity framework中的实体中遇到了一些问题。 基本上我正在做的是这样的: var results = (from c in companies where c.Name.StartsWith(letter) select c); 并将其转换为SQL,如: WHERE (CAST(CHARINDEX(@p, [Extent1].[Name]) AS int)) = 1 这很好,但我的表有数百万的记录,所以这运行非常慢。 我需要它生成的是: WHERE Name LIKE @p + ‘%’ 我搜索高低,除了使用存储过程或使用实体sql之外,找不到任何解决方案… 有没有办法通过linq做到这一点? 可能通过某种方式将linq扩展到实体linq提供程序,或以某种方式拦截命令树或生成的查询?

类型xxxx不期望使用xmlinclude或soapinclude

我有一个关于这个序列化问题的奇怪案例 – 在本网站上已经多次询问过,我已经完成了一些问题并尝试了常用项目无济于事: 将[XmlInclude]添加到抛出错误的类中 删除命名空间 为每个类添加不同的命名空间 为了进一步解释,我在下面提供了我的代码的简化版本。 本质上我使用WebServiceHost对象来运行RESTful服务,我的一个端点返回一个序列化为XML的对象(我用[DataContract]和[DataMember]属性注释了对象)。 此对象包含SerializableDictionary ( 此处 ),其中值已作为object键入。 我相信这就是它失败的原因: 在为值分配基元时,可以正常工作 当我将自定义对象分配给KV对V时,我得到了意外的类型exception,可能是因为Serializer不知道如何对对象进行序列化/某种命名空间问题 显然,我无法使用[XmlInclude]注释Object.cs,因为它是一个服务,我不是自己序列化我不能使用像 new Serializer(typeof(…), new Type[] { … }} 我有什么想法可以做什么? 我想过不输入dict值作为对象,而且更具体但问题是这个值可以采用原语或cusotm类型。 一些代码来解释上面的内容: 编辑:更新了以下代码,使其更加清晰 [DataContract] public class ResponseObject { [DataMember(Name = “data”)] public SerializableDictionary Data { get;set; } public ResponseObject() { Data = new SerializableDictionary(); } } … var d1 = new […]

通过HttpWebRequest传递二进制数据

使用.Net,我想通过HttpWebRequest传递一些二进制数据(一些序列化对象)。 我可以将它放在请求流上,还是需要将其编码为base64字符串? 我的意思是,如果我有: byte[] data = new byte[1000]; GetSomeStrangeData(data); 我是否需要使用Convert.ToBase64String或者我可以将它从HttpWebRequest.GetRequestStream写入流中吗? 后人: http://tools.ietf.org/html/rfc2616 http://msdn.microsoft.com/en-us/library/d4cek6cc.aspx http://www.wireshark.org/ http://www.fiddler2.com