是的,我已将System.Data.Sqlite.dll添加到我的项目(VS2012).是的,我添加了一个参考.是的,我已经双重检查,已经创建了引用(参考属性>路径是正确的).是的,我使用过Google,Bing,
不,我不知道为什么我的代码不会编译.
我对此完全陌生,我正在 C# 中开发 Windows 窗体应用程序,并且想要创建一个“LevelMeter”,在我的想法中,这是一个进度条,其左上角部分被具有窗体背景颜色的三角形覆盖。所以基本上我只想覆盖左上部分来模仿电平表,例如 VLC 播放器音量控制或类似的。
我的问题是,如何在控件本身上绘画?我想创建一个 UserControl 并在完成后添加到我的项目中。我可以使用 SolidBrush 和 FillPolygon 在表单上进行绘制,但 MSDN 库对 ProgressBar.Paint 事件进行了注释:“此 API 支持 .NET Framework 基础结构,并不打算直接从您的代码中使用。” 那么有没有办法在Control上绘画呢?
好的:“永不放弃实验”的原则永远是正确的,这是我的解决方案:
我制作了一个自定义 LevelMeter :控制并使用 FillPolygon 方法来绘制 LevelMeter 的三角形,在我的例子中,只有 8 个不同的值,范围从 0 到 7,所以我绘制了 LevelMeter 的 7 个“部分”。
protected override void OnPaint(PaintEventArgs pe)
{
if (this.valueNew > valueOld)
{
// increase, paint with green
this.CreateGraphics().FillPolygon(new SolidBrush(Color.LawnGreen), new Point[] { p2Old, p3Old, p3New, p2New });
}
else
{
// decrease, paint with BackColor
this.CreateGraphics().FillPolygon(new SolidBrush(this.BackColor), new Point[] …Run Code Online (Sandbox Code Playgroud)