小编Unr*_*ion的帖子

命名空间"System.Data"中不存在类型或命名空间名称"SQLite"(您是否缺少程序集引用?)

是的,我已将System.Data.Sqlite.dll添加到我的项目(VS2012).是的,我添加了一个参考.是的,我已经双重检查,已经创建了引用(参考属性>路径是正确的).是的,我使用过Google,Bing,

不,我不知道为什么我的代码不会编译.

c# sqlite dll reference visual-studio-2012

16
推荐指数
2
解决办法
2万
查看次数

使用 System.Drawing.Graphics 在 Windows 窗体控件上绘画

我对此完全陌生,我正在 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)

c# graphics controls paint winforms

5
推荐指数
1
解决办法
8518
查看次数

标签 统计

c# ×2

controls ×1

dll ×1

graphics ×1

paint ×1

reference ×1

sqlite ×1

visual-studio-2012 ×1

winforms ×1