我做了个噩梦.
将ModalPopupExtender添加到表单很简单,您可以将其删除并告诉它两个必需的控件参数
PopupControlID="MyModalPanel"
TargetControlID="ButtonToLoadIt"
Run Code Online (Sandbox Code Playgroud)
它只是工作正常,但是由客户端点击目标控件触发.
如果你想在后面做一些服务器端代码??? 怎么做 ?
从Visual Studio .NET 2002开始,我习惯使用对象浏览器.
出于某种原因,VS2015(VB.NET)中的此行为已更改.所以现在Goto Definition命令显示混乱的元数据而不是精心安排的对象浏览器.
有谁知道如何关闭它?
我在客户站点上遇到一个奇怪的错误,想知道是否有Environment.MachineName可能返回零长度字符串。文档说这是从注册表中读取的,但没有指定在哪里。我无法想象一台机器不能有 netbios 名称而只是想问一下。
编辑
经过一番调查,这似乎没有返回零长度的字符串,但我只是对它是否可行感兴趣。
我在我的VB.NET DLL中有一些功能,我可以通过使用以下内容从我的VB6应用程序"隐藏":
<Runtime.InteropServices.ComVisible(False)> _
Run Code Online (Sandbox Code Playgroud)
但有没有办法让COM客户端只能看到一个函数,而不是.NET程序集?
这样我可以在.NET端使用共享方法,避免了实例声明的需要.
我知道.NET是多线程的,这是一件好事,但是当我有一个后台工作者时,我会不断遇到问题,例如在我的表单上更新一些控件,我必须这样做:
Private Sub SetRowCellBoolValueThreadSafe(ByVal row As Integer, ByVal col As Integer, ByVal value As Boolean)
If dgvDatabase.InvokeRequired Then
Dim d As New SetRowCellBoolValueCallback(AddressOf SetRowCellBoolValue)
Me.Invoke(d, New Object() {row, col, value})
Else
SetRowCellBoolValue(row, col, value)
End If
End Sub
Delegate Sub SetRowCellBoolValueCallback(ByVal row As Integer, ByVal col As Integer, ByVal value As Boolean)
Private Sub SetRowCellBoolValue(ByVal row As Integer, ByVal col As Integer, ByVal value As Boolean)
dgvDatabase.Rows(row).Cells(col).Value = value
End Sub
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么这没有内置到框架中 - 当然,如果我想要更新DataGridView它,它应该足够聪明,知道更新何时来自另一个线程并且它可以完成上述所有操作?
我想知道当前的 Windows 睡眠模式设置是什么,即它是否已打开以及计时器周期是多少。有任何想法吗?
我的偏好(按顺序)是:
我收到警告MSB3061,表示无法删除输出文件(在此示例中为dll)
错误信息:
------ Rebuild All started: Project: CapInfo, Configuration: Release x86 ------
C:\Program Files\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4319,5): warning MSB3061: Unable to delete file "C:\CapInfo\CapInfo\bin\Release\CapInfo.dll". Access to the path 'C:\CapInfo\CapInfo\bin\Release\CapInfo.dll' is denied.
CapInfo -> C:\CapInfo\CapInfo\bin\Release\CapInfo.dll
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
Run Code Online (Sandbox Code Playgroud)
我在这方面看到的大多数解决方法都建议改变AssemblyVersion并AssemblyFileVersion修复它,但对我来说情况并非如此.
我的情况这种情况一直发生,但只有某些解决方案,但所有都是通过炮轰MSBuild以相同的方式构建(在IDE中编译时也会出现错误)
在这种情况下我不能简单地删除文件,因为这是为COM互操作注册的,所以在编译期间VS取消注册它.如果文件被删除,则取消注册失败,并显示不同的警告消息)
我也尝试将以下内容添加到项目属性(.vbproj文件)中但没有成功:
<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
Run Code Online (Sandbox Code Playgroud)
我也尝试过添加
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"
Run Code Online (Sandbox Code Playgroud)
到预建活动.这将创建锁定的文件,但仍会生成警告
最令人讨厌的部分是编译和复制实际上是有效的(VS重试然后它工作)所以我的问题是这样的
编辑:
这似乎与COM注册有关,因为如果我取消注册"注册COM Interop"我不再得到警告
EDIT2: …
.net msbuild compiler-warnings visual-studio visual-studio-2013
每次使用UsedRange时,我都会遇到更新它的问题。我的代码中有这个:
Sheets("Campaign").UsedRange 'Refresh UsedRange
LastRow = Sheets("Campaign").UsedRange.Rows.Count
Run Code Online (Sandbox Code Playgroud)
这是为了检查特定工作表中使用的最后一行。现在,当您第一次运行它时,它可以工作并输出正确的整数,但如果您从行数最多的列中删除行,则不会更新。问题是,如果您向该特定列添加更多行,它会更新。
这是我的实际代码:
Sub CMPGN_MCRO()
Sheets("Campaign").UsedRange 'Refresh UsedRange.
LastRow = Sheets("Campaign").UsedRange.Rows.Count
Dim RangeString As String
Worksheets("Campaign").Select
Range("A1:A" & LastRow).Select
RangeString = Selection.Address
Range("A1").End(xlToRight).Select
RangeString = RangeString & ":" & Selection.Address 'Selects all the data in Campaign Worksheet.
Dim C As Range
i = 2
For Each C In Worksheets("Campaign").Range(RangeString).Cells
If Mid(C.Value, 6, 2) = "AC" Then
Worksheets("Sheet3").Range("A" & i) = C.Value 'Echo out all the filtered data and output it to another worksheet.
i …Run Code Online (Sandbox Code Playgroud) 下划线允许我做这样的事情
Public Sub derp _
(x As Integer)
MsgBox(x)
End Sub
Run Code Online (Sandbox Code Playgroud)
这有什么相反的表示法吗?例如,如果它是,那么我可以做
Public Sub derp(x as Integer) ¯ Msgbox(x) ¯ End Sub
Run Code Online (Sandbox Code Playgroud) 根据MSDN,Short数据类型由两个字节组成:https://msdn.microsoft.com/en-us/library/47zceaw7.aspx
但是如果我定义一个Short变量,内容总是4个字节:&HFFFFFFFF
Dim crc As Short = CShort(&HFFFFS) ' crc = &HFFFFFFFF
Dim crc As Short = &HFFFFS ' crc = &HFFFFFFFF
Run Code Online (Sandbox Code Playgroud)
这句话甚至给我一个错误:
Dim crc As Short = CShort(&HFFFF) ' Error: Constant expression not representable in type 'Short'
Run Code Online (Sandbox Code Playgroud)
这有什么用?为什么我Short不占用两个字节?
MWE补充道:
Public Function CRC16(ByVal dataFrame As Byte(), ByVal dataLength As Int16) As Int16
Dim index As Int16
Dim crc As Short = &HFFFFS
For iCount As Int16 = 0 To CShort(dataLength - …Run Code Online (Sandbox Code Playgroud)