这是一个非常简单的问题,当列表视图的选定索引更改时,该事件会触发两次,一次用于取消选择,第二次用于选择下一个项目。
我需要在不同时间选择或取消选择时使用该事件,但是当取消选择只是稍后重新选择时,它会使我的一半用户界面从启用状态闪烁到关闭状态,然后再次打开,它还会导致运行相当多的代码,因此我只需要一种方法来避免取消选择触发,如果单击的是另一个项目而不是空白(用于取消选择)
Dave R 说要在这里使用 100ms 计时器:我是否在 ListView 选择事件处理中遗漏了一些东西 ,这听起来像是可以工作,但看起来很不整洁,或者通常是一种不好的方法。
我唯一的其他想法是使用点击事件,然后在该位置找到该项目?但我不想惹麻烦
提前致谢!
-编辑-
我只是认为单击事件会首先触发,因此我可以设置一个标志,如果单击事件发生在某个项目上,则可以跳过选择索引更改的代码,然后在使用该标志后重置该标志,从而跳过取消选择?我现在会看一下,但再次感觉这不是一种非常有效或简单的方法来完成听起来很简单的事情?
我的问题基本上就是如何结束使用excel时运行的Excel.exe进程.在应用程序中,我打开并使用带有几张纸的excel工作簿,然后将它们留给用户随意使用,我的问题是我的应用程序永远不会放弃Excel流程.
如果在关闭excel之前关闭了应用程序,则关闭excel时进程结束,否则如果在关闭excel后关闭我的应用程序,则该进程将继续运行.
我已经尝试了一些我在互联网上发现的与GC.collect有关的东西,等待待定的终结器或者其他类似的东西但是都没有用.
我也可以愉快地关闭excel流程,唯一的问题是不知道我是否正在关闭他们已经忽略但尚未保存的用户重要电子表格.
我不确定我的代码是否有任何帮助,但我使用microsoft.office.interop.excel来获得excel,并且我正在使用已保存在应用程序资源文件夹中的工作簿.
-编辑-
这是我尝试过的一切,我知道它有点矫枉过正,但遗憾的是它仍然没有结束这个过程
Marshal.ReleaseComObject(FirstWorksheet)
Marshal.FinalReleaseComObject(FirstWorksheet)
Marshal.ReleaseComObject(SecondWorksheet)
Marshal.FinalReleaseComObject(SecondWorksheet)
Marshal.ReleaseComObject(ThirdWorksheet)
Marshal.FinalReleaseComObject(ThirdWorksheet)
Marshal.ReleaseComObject(FourthWorkSheet)
Marshal.FinalReleaseComObject(FourthWorkSheet)
Marshal.ReleaseComObject(xlRange)
Marshal.FinalReleaseComObject(xlRange)
Marshal.ReleaseComObject(SecondxlRange)
Marshal.FinalReleaseComObject(SecondxlRange)
Marshal.ReleaseComObject(thirdxlRange)
Marshal.FinalReleaseComObject(thirdxlRange)
Marshal.ReleaseComObject(fourthxlRange)
Marshal.FinalReleaseComObject(fourthxlRange)
Marshal.ReleaseComObject(.activeworkbook)
Marshal.FinalReleaseComObject(.activeworkbook)
Marshal.ReleaseComObject(excelApplication)
Marshal.FinalReleaseComObject(excelApplication)
MSExcelControl.QuitExcel() 'A function made by someone else I work with that was meant to close excel's process
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
Run Code Online (Sandbox Code Playgroud)
-Edit-这是quitExcel方法
Friend Shared Sub QuitExcel()
If Not getExcelProcessID = -1 Then
If Not excelApp Is Nothing Then
'Close and quit
With excelApp
Try
Do Until .Workbooks.Count = 0
'Close all open documents …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将字符串发送File
到我的asmx服务,并且我不断收到以下错误:
Message: Invalid web service call, missing value for parameter: File
StackTrace
at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters) at
System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\\r\\n at
System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\\r\\n at
System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)\",\"ExceptionType\":\"System.InvalidOperationException\"}
Run Code Online (Sandbox Code Playgroud)
这是JS
function AJAXActionPostData(service, operation, File, callback, async)
{
if (!async) { async = false; }
$.ajax({
type: 'POST',
url: '/API/Service.asmx/operation',
contentType: 'application/json; charset=utf-8',
async: async,
data: "{ 'File': '" + File + "' }",
dataType: 'json',
success: function (msg) { if (msg) { callback(msg.d); …
Run Code Online (Sandbox Code Playgroud) 我知道这听起来不太重要,因为它可以在类外部进行更改,但是我可以说我有一个从它继承的正方形和三角形类的形状类.
如果我创建一个明显= 4的SideCount属性的新方块,那么如果我将它的SideCount更改为3,我可以将代码放入SideCount的Setter中,将方形对象转换为三角形吗?
上面的例子听起来毫无意义,但这只是我想要解决的原则吗?
如果语言不同我想在c#中做到这一点