如何在DataGridView中获取当前单元格位置x和y?

我有一个Windows表单,其中隐藏着日历。 我想在DataGridView的当前单元格下面显示表单。 位置根据当前单元格的位置而变化。 我不想要当前的单元格或当前列,我想要的位置,以便我可以设置我的日期表单的位置。 这是我正在使用但它不起作用: int po_X = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Left+paygrid.Left; int po_Y = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Bottom+paygrid.Top; form_date.Location = new System.Drawing.Point(po_X, po_Y);

如何将’byte ‘类型转换为’System.Data.Linq.Binary’

我的数据库中有一个WorkflowInstances表,其中包含以下字段:ID(int),Name(nvarchar(50),WorkflowID(int), Document(varbinary(MAX) ))。 我想插入一个新的WorkflowInstance,所以我写了这段代码 Stream myStream = openFileDialogDoc.OpenFile(); if (myStream != null) { using (myStream) { WorkflowInstance w = new WorkflowInstance(); byte[] bytes = new byte[myStream.Length]; myStream.Read(bytes, 0, (int)myStream.Length); w.ID = repository.WorkflowsRepository.GetMaxIDWokflowInstance() + 1; w.Name = textBoxWorkflowInstanceName.Text; w.CurrentStateID = repository.WorkflowsRepository.GetWorkflowFirstState((int)listBoxMyWorkflows.SelectedValue); w.WorkflowID = (int)listBoxMyWorkflows.SelectedValue; w.CreationDate = System.DateTime.Now.ToString(); w.Document = bytes; RapidWorkflowDataContext context = new RapidWorkflowDataContext(); context.WorkflowInstances.InsertOnSubmit(w); […]

C#BinaryWrite over SSL

我正在尝试使用存储在MSSQL varbinary(MAX)字段中的PDF回复客户端。 响应通过http连接在我的localhost和测试服务器上运行,但不能通过https连接在生产服务器上运行。 我只使用一个简单的BinaryWrite(下面的代码)。 byte[] displayFile = DatabaseFiles.getPdfById(id); Response.ContentType = “application/pdf”; Response.BinaryWrite(displayFile); 这里没什么好看的。 只需获取二进制数据,设置内容类型,然后写回客户端。 有没有什么特别需要做的,以这种方式回复https? 编辑:通过不起作用,我的意思是我在浏览器中得到一个空白文档。 Acrobat无法在浏览器中加载。 编辑:我只是注意到这个问题只发生在IE 7中.PDF 3中的PDF正确加载。我们的客户端专门使用IE 7(优于IE 6,我说服他们升级…大声笑)。 编辑:尝试添加标题“content-disposition”以使文件充当附件。 浏览器无法在SSL下加载IE错误“Internet Explorer无法从ProductionServer.net下载displayFile.aspx”。 (以下代码) byte[] displayFile = DatabaseFiles.getPdfById(id); Response.Clear(); Response.AddHeader(“content-disposition”, String.Format(“attachment;filename={0}”, fileName)); Response.ContentType = “application/pdf”; Response.BinaryWrite(displayFile); 编辑:如果在生产服务器上通过http查看文件,浏览器将显示PDF的代码,就像通过NotePad查看一样。 (例如%PDF-1.4%â€6 0 obj endobj xref 6 33 …等)

C#。 使用reflection设置成员对象值

我需要您的帮助,以下代码。 基本上我有一个名为“Job”的类,它有一些公共字段。 我传递给我的方法“ApplyFilter”两个参数“job_in”和“job_filters”。 第一个参数包含实际数据,第二个参数包含指令(如果有)。 我需要遍历“job_in”对象,读取它的数据,通过读取“job_filters”来应用任何指令,修改数据(如果需要)并将其返回到新的“job_out”对象中。 一切正常,直到我需要将我的数据存储在“job_out”对象中: public class Job { public string job_id = “”; public string description = “”; public string address = “”; public string details = “”; } … private Job ApplyFilters(Job job_in, Job job_filters) { Type type = typeof(Job); Job job_out = new Job(); FieldInfo[] fields = type.GetFields(); // iterate through […]

使用ASP.NET MVC OutputCache同时根据用户是否经过身份validation来更改View内容

我正在构建一个ASP.NET MVC 2站点,我正在大量使用OutputCache参数。 但是,我有一个问题:使用此类缓存可能会干扰身份validation 。 在我的所有页面上,我显示用户是否已登录。 此外,在我的一些视图中,我根据用户角色进行过滤,以确定是否显示某些页面内容(例如,我的某个页面上的“ 编辑”链接仅显示给主持人或管理员角色的用户) 。 使用OutputCache是​​否会干扰我的视图的动态更改? 如果是这样,我如何在不消除缓存的情况下解决此问题?

如何提高GDI的DrawImage(Unscaled)的性能?

在我的用户控件的绘制处理程序中,我遍历一组预定义的Bitmap对象,并将它们绘制到客户区: C#版本: private void Control_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; foreach (BitmapObj bmpObj in _bitmapObjCollection) { g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location); } } VB.NET版本: Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint Dim g As Graphics = e.Graphics For Each bmpObj As BitmapObj In _bitmapObjCollection g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location) Next End Sub 代码工作正常但是当十几个对象添加到集合时开始陷入困境。 […]

创建Webjob计划时出错

我在TFS 2012内部部署安装中托管了源代码。 当我尝试从Visual Studio 2015将Azure WebJob发布到Azure时,出现以下错误。 错误:创建WebJob计划时发生错误:响应状态代码不表示成功:409(冲突)。 WebJob确实在Web应用程序下创建,但它设置为On Demand而不是计划。 当我打开Fiddler尝试解决此问题时,我收到以下错误。 错误ERROR_CONNECTION_TERMINATED:Web部署任务失败。 (Web部署遇到服务器连接问题,必须终止连接。如果问题仍然存在,请与服务器管理员联系。有关详细信息,请访问: http : //go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_CONNECTION_TERMINATED 。) 如何将预定的WebJob发布到Azure? 或者至少得到更具体的错误?

C#线程/锁定混乱

我有以下代码: var items = new List {“1”, “2”, “3”}; // 200 items foreach(var item in items) { ThreadPool.QueueUserWorkItem((DoWork), item); } private void DoWork(object obj) { lock(this) { using(var sw = File.AppendText(@”C:\somepath.txt”) { sw.WriteLine(obj); } } } 由于线程,出于某种原因,我得到了写入文件的200个项目的随机数。 60或127或有时只有3.如果我删除ThreadPool并只在原始foreach循环内写入,则所有200个项目都会成功写入。 不知道为什么会这样? 谢谢你的帮助。

C#与VB.Net中的命名空间引用

在VB.Net中你可以做如下的事情,没有任何问题…只是忽略这是一个非常无用的类的事实:-) Imports System Public Class Class1 Public Shared Function ArrayToList(ByVal _array() As String) As Collections.Generic.List(Of String) Return New Collections.Generic.List(Of String)(_array) End Function End Class 但是如果你在C#中做同样的事情…… using System; public class Class1 { public static Collections.Generic.List ArrayToList(string[] _array) { return new Collections.Generic.List(_array); } } 您将在“Collections.Generic.List”上返回“无法找到类型或命名空间名称’集合’(您是否缺少using指令或程序集引用?)”行中出现错误。 我知道你必须实际使用System.Collections.Generic的using指令才能使用List,但我不知道为什么 。 我也不明白为什么我在函数声明中没有得到相同的错误,只是在return语句中。 我希望有人可以解释这一点,甚至可以将我推荐给解释它的technet页面。 我四处搜寻,但找不到任何解释这个概念的东西。 编辑:请注意,问题实际上是关于子命名空间的引用,例如在示例中能够引用系统中的集合。

从C#应用程序调用ASP.net Web服务

我有个问题。 如何调用Web服务并从C#桌面应用程序获取结果。 我正在制作一个桌面应用程序,我希望它能够连接到我的在线ASP.net Web服务。 这怎么可能?