我想要的只是更新ListViewItem的文本,而不会看到任何闪烁.
这是我的更新代码(多次调用):
listView.BeginUpdate();
listViewItem.SubItems[0].Text = state.ToString(); // update the state
listViewItem.SubItems[1].Text = progress.ToString(); // update the progress
listView.EndUpdate();
Run Code Online (Sandbox Code Playgroud)
我见过一些涉及覆盖组件的解决方案 WndProc():
protected override void WndProc(ref Message m)
{
if (m.Msg == (int)WM.WM_ERASEBKGND)
{
m.Msg = (int)IntPtr.Zero;
}
base.WndProc(ref m);
}
Run Code Online (Sandbox Code Playgroud)
他们说这解决了问题,但在我的情况下却没有.我相信这是因为我在每个项目上使用图标.
我希望在Panel.AutoScroll为true时使用相同的功能,但滚动条不可见.
为此,我需要知道如何使用代码中的函数向左/向右/向上滚动.
虽然这个问题看起来很简单,但它有点棘手.
我有一个包含以下列的表:
table A:
int ID
float value
datetime date
varchar(50) group
Run Code Online (Sandbox Code Playgroud)
我想获取包含按"group"列分组的最大"date"的记录的"ID"和"value".像"每个群体的最新价值是什么?"
我可以得到每个组及其最大日期:
SELECT group, MAX(date) FROM A GROUP BY group; -- I also need the "ID" and "value"
但我想拥有最高日期的记录的"ID"和值.
在A和结果之间建立联接可能是答案,但是无法知道MAX(日期)引用哪条记录(如果"日期"重复).
有人可以帮忙吗?
将我的Visual Studio 2003项目迁移到VS2005(或VS2008)后,我的表单仍然在单个文件中.
VS2005和VS2008上的新表单是使用部分类创建的,其中编辑器生成的所有代码都保存在Designer.cs文件中.
由于VS2005表单创建是一种更好的处理表单的方法,我想知道是否有一种方法可以将所有旧的单文件格式转换为VS2005分类方法.
我已经完成了一些手工操作,但这非常棘手,可能导致一些严重的错误.
有什么建议?PS:我正在使用Microsoft Visual C#2008 Express Edition.
这是我在做什么:
object ReturnMatch(System.Type type)
{
foreach(object obj in myObjects)
{
if (obj == type)
{
return obj;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果 obj 是 的子类type,它将不匹配。但我希望函数以与使用 operator 相同的方式返回is。
我尝试了以下操作,但无法编译:
if (obj is type) // won't compile in C# 2.0
Run Code Online (Sandbox Code Playgroud)
我想出的最佳解决方案是:
if (obj.GetType().Equals(type) || obj.GetType().IsSubclassOf(type))
Run Code Online (Sandbox Code Playgroud)
没有办法使用运算符is使代码更干净吗?
我想添加一个位于绘图区域特定位置的 TextAnnotation,其方式独立于轴平移或缩放 - 类似于水印。
我注意到 TextAnnotation 位置只能由 DataPoint 确定,而 ImageAnnotation 具有用于定位的 X 和 Y 属性。
使用工具提示显示TreeNode的详细描述时,工具提示将在节点顶部绘制,就像它正在完成节点的文本一样.此外,如果文本很长,则工具提示的位置使文本超出屏幕.
但我需要的是工具提示显示在鼠标指针的正下方,而不是在TreeNode的顶部.
知道怎么做吗?
显示,不要告诉:
怎么样:
怎么样http://images6.theimagehosting.com/tooltip2.th.PNG
我想要的:
我想防止复制,剪切和粘贴我的TEdit.我怎样才能做到这一点?
我在控件上按下时尝试设置Key=NULLon KeyDown事件CTRL+V,但是没有用.
我使用ClickOnce安装了使用TeeChart ActiveX(用于制图的COM组件)的Windows应用程序.
如果我使用regsvr32 teechart8.ocx手动注册TeeChart,我的应用程序工作正常.但我想要,我需要使用ClickOnce安装应用程序.
我怎样才能做到这一点?
我试图在.NET 4.0图表中设置固定数量的次网格线,其X轴是对数刻度.
我尝试设置"Axis.Minor.Interval"属性,这只会使网格线消失.
chart1.ChartAreas[0].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisX.Interval = 100d;
chart1.ChartAreas[0].AxisX.MajorGrid.IntervalType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisX.MajorGrid.IntervalOffsetType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 10d;
chart1.ChartAreas[0].AxisX.MinorGrid.IntervalType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisX.MinorGrid.IntervalOffsetType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisX.MinorGrid.Interval = 5;
Run Code Online (Sandbox Code Playgroud)
我的目标是每十年有一个主要网格的对数刻度,显示10个小网格线.
谢谢