我正在创建一个自定义Label控件(通过简单地继承标准Label控件并重新绘制背景和文本),因为我需要一个非常特定的背景和边框.在控件的构造函数中,我将AutoSize属性设置为false,因此我可以为新标签设置标准默认大小.
Public Sub New()
'Set the default size of the control to 75x24
Me.Height = 24
Me.Width = 75
'Turn off the autosize property.
Me.AutoSize = False
'Turn on double-buffering.
Me.DoubleBuffered = True
End Sub
Run Code Online (Sandbox Code Playgroud)
在我使用此控件的应用程序中,如果我在运行时(在代码中)创建新的自定义标签,则AutoSize属性保持为False,并且它可以正常工作.
如果我尝试在设计时将新的自定义标签添加到我的表单中,则将AutoSize属性设置为True,我必须在属性窗口中手动将其设置为False.这不是一个大问题,但我不明白为什么行为不同.
是什么导致了这种行为上的差异?
我一直在努力将ms-access文件切换到SQLite文件,以满足我简单的数据库需求; 通常的原因:文件较小,开销较小,开源等.
阻止我进行切换的一件事似乎是SQLite缺乏速度.对于简单的SELECT查询,SQLite似乎与MS-Access一样好或更好.使用多个INNER JOIN语句的相当复杂的SELECT查询会出现问题:
SELECT DISTINCT
DESCRIPTIONS.[oCode] AS OptionCode,
DESCRIPTIONS.[descShort] AS OptionDescription
FROM DESCRIPTIONS
INNER JOIN tbl_D_E ON DESCRIPTIONS.[oCode] = tbl_D_E.[D]
INNER JOIN tbl_D_F ON DESCRIPTIONS.[oCode] = tbl_D_F.[D]
INNER JOIN tbl_D_H ON DESCRIPTIONS.[oCode] = tbl_D_H.[D]
INNER JOIN tbl_D_J ON DESCRIPTIONS.[oCode] = tbl_D_J.[D]
INNER JOIN tbl_D_T ON DESCRIPTIONS.[oCode] = tbl_D_T.[D]
INNER JOIN tbl_Y_D ON DESCRIPTIONS.[oCode] = tbl_Y_D.[D]
WHERE ((tbl_D_E.[E] LIKE '%')
AND (tbl_D_H.[oType] ='STANDARD')
AND (tbl_D_J.[oType] ='STANDARD')
AND (tbl_Y_D.[Y] = '41')
AND (tbl_Y_D.[oType] ='STANDARD')
AND (DESCRIPTIONS.[oMod]='D'))
Run Code Online (Sandbox Code Playgroud)
在MS-Access中,此查询在大约2.5秒内执行.在SQLite中,它需要8 分钟多一点.无论是从VB代码运行查询还是使用sqlite3.exe从命令提示符运行,都需要相同的时间.
所以我的问题如下:
我有个问题.我需要在图像中填充(或重新绘制)一些像素,存储在Image控件中.这是一个png图像.我的意思是,所有黑色像素都应该填充例如红色.我怎样才能做到这一点?我以为我可以直接访问像素并使用XOR更改特殊位,但我不知道如何做到这一点.或者也许有一种更简单的方法?
我正在尝试使用(动态创建的)工作表名称和固定单元格地址为单元格设置公式.我正在使用以下行但似乎无法使其正常工作:
"=" & strProjectName & "!" & Cells(2, 7).Address
Run Code Online (Sandbox Code Playgroud)
任何有关为什么不起作用或正确指导方向的建议都将不胜感激.
提前致谢
我无法正确设置ComboBox的DropDownHeight以显示所有项目.
我正在使用从ComboBox继承的控件.我已经重写了OnDrawItem和OnMeasureItem方法,以便在需要时在列中创建多个列和文本换行.一切正常.
当我尝试设置DropDownHeight时会出现问题.我将DropDownHeight设置为一个任意大的值,比项目列表大一点.ComboBox控件似乎自动截断DropDownHeight的任何值,该值大于列表中所有显示项的大小.(假设您将MaxDropDownItems属性设置为高于项目数,我这样做.)通常这种行为完美无缺,如下所示: alt text http://www.freeimagehosting.net/uploads/dd09404697.png
不,这不是我在下拉框中的真实数据.
当我在下拉列表中有一个条目需要换行以显示全文时,会出现问题.此条目显示正常,但是ComboBox正在计算DropDownHeight,它忽略了其中一个条目是正常值的两倍这一事实,因此您必须向下滚动一行才能到达下拉列表中的最后一个条目. alt text http://www.freeimagehosting.net/uploads/d0ef715f83.png
这是我用来确定项目是否需要文本换行以及设置每个项目的高度的代码:
Protected Overrides Sub OnMeasureItem(ByVal e As System.Windows.Forms.MeasureItemEventArgs)
MyBase.OnMeasureItem(e)
//Determine the proper height of the current row in the dropdown based on
//the length of the OptionDescription string.
Dim tmpStr As String = FilterItemOnProperty(Items(e.Index), "OptionDescription")
Dim lng As Single = e.Graphics.MeasureString(tmpStr, Me.Font).Width
//Use the length of the item and the width of the column to calculate if wrapping is needed.
Dim HeightMultiplier As Integer = Math.Floor(lng / _ColumnWidths(1)) + …Run Code Online (Sandbox Code Playgroud) 我从github下载了一个项目,该项目在部署到生产时有一个邮件程序,但是在我自己的本地副本上,邮件程序不起作用.如何在本地设置邮件以进行开发,以便我可以对其进行测试?
我是eclipse和Java开发的新手.如果这听起来像一个微不足道的问题,请耐心等待.
我正在尝试修改现有的Web服务.这最初是使用自顶向下方法开发的(即首先是WSDL然后生成Java bean骨架).
我已经对WSDL进行了更改,现在需要将它们合并到Web服务中.当我右键单击WSDL生成Java bean骨架时,现有代码将被覆盖.当我将首选项设置为不覆盖现有代码时,它会提示我覆盖每个文件,我不确定哪些应该覆盖哪些,哪些不应该覆盖.
有没有办法可以更改现有代码而不覆盖它?
这是我们应该如何修改现有的Web服务?
在Netbeans中,获取当前已打开项目的文件路径的正确方法是什么.在我正在开发的模块中,我需要为FileChooser获取Project的路径,但是我尝试的大部分内容只返回了它正在执行的模块的路径.他们是一种获取方法运行的项目路径的方法吗?
<svg width="5cm" height="3cm" viewBox="0 0 500 300">
<path id="path1" d="M100,250 C 100,50 400,50 400,250"
fill="none" stroke="blue" stroke-width="7.06" />
<circle r="17.64" fill="red">
<animateMotion dur="6s" repeatCount="1" rotate="auto" >
<mpath xlink:href="#path1"/>
</animateMotion>
</circle>
</svg>
Run Code Online (Sandbox Code Playgroud)
如果我在普通的html/svg文件中编写svg,它工作正常,圆圈动画正确.但是,如果我通过javascript动态添加圆元素,则添加了圆圈,但它没有动画.怎么了?js代码:
var svg = $("svg"); //use jquery
var circle = document.createElementNS("http://www.w3.org/2000/svg","circle");
circle.setAttribute("r", "5");
circle.setAttribute("fill", "red");
var ani = document.createElementNS("http://www.w3.org/2000/svg","animateMotion");
ani.setAttribute("dur", "26s");
ani.setAttribute("repeatCount", "indefinite");
ani.setAttribute("rotate", "auto");
var mpath = document.createElementNS("http://www.w3.org/2000/svg","mpath");
mpath.setAttribute("xlink:href", "#path1");
ani.appendChild(mpath);
circle.appendChild(ani);
svg.append(circle);
Run Code Online (Sandbox Code Playgroud) 我有一个自定义模板复选框,我正在使用视图框(使用视图框允许简单缩放)实现它,我无法弄清楚如何更改选中/取消选中复选框时显示的内容。
我希望选中时复选标记为红色(不是最终外观,只是想看看它是否有效)。
我的复选框样式:
<Style x:Key="KioskCheckBox" TargetType="{x:Type CheckBox}">
<Setter Property="FontFamily" Value="{StaticResource FontFamilyLight}" />
<Setter Property="FontSize" Value="{StaticResource KioskNormalFontSize}" />
<Setter Property="Foreground" Value="{StaticResource brshSystemTextColor}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<!--<Viewbox HorizontalAlignment="Left"
VerticalAlignment="Top"
Stretch="Fill"
Height="30"
Width="30" Margin="10,0,0,0">
<Grid Height="200" Width="200">
<Ellipse
Fill="Transparent"
StrokeThickness="15"
Stroke="{StaticResource brshSystemTextColor}"/>
<Path
Stroke="{StaticResource brshSecondaryColor}"
Fill="Transparent"
Stretch="None"
StrokeThickness="20"
Data="M 30,100 L 80,140 L 160,60" Margin="0,0,2,2"/>
</Grid>
</Viewbox>-->
<ContentControl>
<StackPanel Orientation="Horizontal">
<Viewbox HorizontalAlignment="Left"
VerticalAlignment="Center"
Stretch="Fill"
Height="30"
Width="30" Margin="10,0,0,0">
<Grid Height="200" Width="200">
<Ellipse
Fill="Transparent"
StrokeThickness="15"
Stroke="{StaticResource brshSystemTextColor}"/>
<Path
Stroke="{StaticResource brshSecondaryColor}"
Fill="Transparent"
Stretch="None" …Run Code Online (Sandbox Code Playgroud)