2018-12-28 16:46:22 fxziyu 阅读数 1246
  • C#WinForm图表控件应用详解

    本课程详细介绍图表控件(Chart)在C#WinForm程序开发中的应用,包括图表的基本要素,基本图表的创建,图表的类型,核心内容是用图表展示数据库中的数据。

    2347 人正在学习 去看看 武占文

ICSharpCode.TextEditor 控件源自开源项目 SharpDevelop,是一款非常不错的.NET代码编辑控件,内置了多种高亮语言支持,对中文支持友好。

为了方便使用,我在其控件上增加语言属性,可以直接在属性栏设置语言,同时示例中加入代码右键菜单功能,包括剪切、复制、粘贴、删除、全选。

右键菜单

 

属性栏直接选择语言

 

代码参考

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.TextEditor;

namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string str = textEditorControl1.ActiveTextAreaControl.SelectionManager.SelectedText;
            if (str == "") return;
            Clipboard.SetText(str);
        }

        private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string str = Clipboard.GetText();
            textEditorControl1.ActiveTextAreaControl.TextArea.InsertString(str);

            if (textEditorControl1.ActiveTextAreaControl.SelectionManager.HasSomethingSelected)
                textEditorControl1.ActiveTextAreaControl.SelectionManager.RemoveSelectedText();
        }

        private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string str = textEditorControl1.ActiveTextAreaControl.SelectionManager.SelectedText;
            if (str == "") return;
            Clipboard.SetText(str);
            textEditorControl1.ActiveTextAreaControl.SelectionManager.RemoveSelectedText();
        }

        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string str = textEditorControl1.ActiveTextAreaControl.SelectionManager.SelectedText;
            if (str != "") textEditorControl1.ActiveTextAreaControl.SelectionManager.RemoveSelectedText();
        }

        private void 全选ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.textEditorControl1.ActiveTextAreaControl.SelectionManager.SetSelection(
                textEditorControl1.Document.OffsetToPosition(0),
                textEditorControl1.Document.OffsetToPosition(textEditorControl1.Document.TextLength));
        }
    }
}

示例代码下载

https://download.csdn.net/download/fxziyu/10883752

 

2016-12-26 16:13:30 tqw0306 阅读数 1859
  • C#WinForm图表控件应用详解

    本课程详细介绍图表控件(Chart)在C#WinForm程序开发中的应用,包括图表的基本要素,基本图表的创建,图表的类型,核心内容是用图表展示数据库中的数据。

    2347 人正在学习 去看看 武占文


本文主要介绍修改C#工具箱中各控件的外形,此方法可以将矩形的按钮、文本框、编辑框等修改成圆形、多边形等

以下是操作步骤:

1、将控件从工具箱拖入视图设计区域(也可手动创建)

2.在Load函数中添加以下代码:

   GraphicsPath myPath = new GraphicsPath();//创建路径对象
    myPath.AddEllipse(0, 0, 50, 50);//绘制圆形路径(绘制函数可选System.Drawing.Drawing2D下的所有绘制函数)(注意:新绘制的控件大小要小于原控件)

     this.button1.Region = new Region(myPath); //将路径绑定到控件


就这么简单两步绘制自定义外形控件,而且新绘制的控件基本上具有原先控件的所有属性

2019-01-24 10:23:32 anlog 阅读数 1141
  • C#WinForm图表控件应用详解

    本课程详细介绍图表控件(Chart)在C#WinForm程序开发中的应用,包括图表的基本要素,基本图表的创建,图表的类型,核心内容是用图表展示数据库中的数据。

    2347 人正在学习 去看看 武占文

根据网络资源修改编写的一个进度条控件,主要是记录开发过程。

用户可以根据自己需要修改相应代码,或直接使用控件。也可以将代码作为子能够以控件的学习资料

写作目的主要是防止以后忘记。

 

编译环境 VS2010  C#    XP sp3

详细的DLL及源代码  还有测试程序请  下载地址

https://download.csdn.net/download/anlog/10935465

 

详细控件源代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Drawing;//绘图
using System.Windows;
using System.Windows.Forms;
using System.ComponentModel;




namespace ClassLibrary1
{
    public class AnlogProgress:Control
    {
        /// <summary>
        /// ////////////////////////////////////////////////////////////////
        /// </summary>
        public AnlogProgress() //构造函数
        {
            //打开双缓冲 禁止重绘背景  控件尺寸改变时要重绘  用户自绘   都设置为真  防止控件闪烁
            //this.SetStyle(  ControlStyles.AllPaintingInWmPaint |
            //                ControlStyles.OptimizedDoubleBuffer |
            //                ControlStyles.ResizeRedraw |
            //                ControlStyles.UserPaint,                              
            //                true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.UserPaint, true);
            //参考 网址 https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.controlstyles?redirectedfrom=MSDN&view=netframework-4.7.2
            //网址 https://www.cnblogs.com/bomo/archive/2012/12/11/2813369.html



            this.MouseDown += AnlogProgress_MouseDown;
            this.MouseMove += AnlogProgress_MouseMove;
            this.MouseUp += AnlogProgress_MouseUp;



        }
        /////////////////////////////////////////////////////////////////////////////////
        Point originPoint;
        Point originsetRectPoint;
        bool setRectDown = false;

        void AnlogProgress_MouseUp(object sender, MouseEventArgs e)
        {
            setRectDown = false;
        }
        void AnlogProgress_MouseMove(object sender, MouseEventArgs e)
        {
            if (setRectDown)
            {
                int dd = e.Location.X - originPoint.X;

                double percent = (double)(originsetRectPoint.X + dd - this.backRect.X) / (this.backRect.Width - this.backRect.Height);
                if (percent < 0)
                {
                    this.Value = minimum;
                    this.foreRect.Width = 0;
                    this.setRect.X = backRect.X;
                }
                else if (percent > 1)
                {
                    this.Value = maximum;
                    this.foreRect.Width = this.backRect.Width;
                    this.setRect.X = backRect.X + backRect.Width - backRect.Height;
                }
                else
                {
                    this.Value = percent * maximum;
                    this.foreRect.Width = (int)(percent * this.backRect.Width);
                    this.setRect.X = originsetRectPoint.X + dd;
                }
                Invalidate();
            }
        }
        void AnlogProgress_MouseDown(object sender, MouseEventArgs e)
        {
            if (setRect.Contains(e.Location))
            {
                this.originPoint = e.Location;
                originsetRectPoint = this.setRect.Location;
                this.setRectDown = true;
            }
        }

        //Rectangle forceRect;   //进度条进度区域 他是随着进度而改变的
        //Rectangle backRect;    //进度条整体区域 它的尺寸是相对稳定的
        //Rectangle setRect;     //进度控制块区域 他是正方形的,它的高度与进度条高度相同

        //Color backgroundColor = Color.White;//是进度条整体区域的颜色
        //Color forceColor      = Color.Gray; //进度条颜色 为灰色
        //Color setColor        = Color.Black;
        //////////////////////////////////////////////////////////////////////////////
        Rectangle foreRect;
        Rectangle backRect;
        Rectangle setRect;

        Color backgroundColor = Color.White;
        Color foregroundColor = Color.Gray;
        Color setRectColor = Color.Black;
        Color fontColor = Color.Black;

        int maximum = 100;
        int minimum = 0;
        double myValue = 0;

        bool showPercent;
        float fontSize = 9;
        FontFamily myFontFamily = new FontFamily("宋体");


        //////////////////////////////////////////////////////////////////////////////
        [Category("General"), Description("Show Percent Tag"), Browsable(true)]
        public bool ShowPercentTag
        {
            get { return showPercent; }
            set
            {
                showPercent = value;
                Invalidate();
            }
        }
        [Category("General"), Description("Control's Maximum"), Browsable(true)]
        public int Maximum
        {
            get { return maximum; }
            set
            {
                maximum = value;
                Invalidate();
            }
        }
        [Category("General"), Description("Control's Minimum"), Browsable(true)]
        public int Minimum
        {
            get { return minimum; }
            set
            {
                minimum = value;
                Invalidate();
            }
        }

        [Category("General"), Description("Control's FontSize"), Browsable(true)]
        public float FontSize
        {
            get { return fontSize; }
            set
            {
                this.fontSize = value;
                Invalidate();
            }
        }
        [Category("General"), Description("Control's FontFamily"), Browsable(true)]
        public FontFamily MyFontFamily
        {
            get { return myFontFamily; }
            set
            {
                this.myFontFamily = value;
                Invalidate();
            }
        }

        [Category("Color"), Browsable(true)]
        public Color BackgroundColor
        {
            get { return backgroundColor; }
            set
            {
                this.backgroundColor = value;
                Invalidate();
            }
        }
        [Category("Color"), Browsable(true)]
        public Color ForegroundColor
        {
            get { return foregroundColor; }
            set
            {
                this.foregroundColor = value;
                Invalidate();
            }
        }
        [Category("Color"), Browsable(true)]
        public Color SetRectColor
        {
            get { return setRectColor; }
            set
            {
                this.setRectColor = value;
                Invalidate();
            }
        }
        [Category("Color"), Browsable(true)]
        public Color FontColor
        {
            get { return fontColor; }
            set
            {
                this.fontColor = value;
                Invalidate();
            }
        }

        ///////////////////////////////////////////////////////////////////
        [Category("General"), Description("Control's Width"), Browsable(true)]
        public new int Width
        {
            get { return base.Width; }
            set
            {
                base.Width = value;
                foreRect.X = backRect.X = base.Width / 20;
                backRect.Width = base.Width * 9 / 10;
                foreRect.Width = (int)(myValue / maximum * backRect.Width);
                setRect.X = (int)(myValue / maximum * (backRect.Width - backRect.Height) + foreRect.X);

                Invalidate();
            }
        }
        [Category("General"), Description("Control's Height"), Browsable(true)]
        public new int Height
        {
            get { return base.Height; }
            set
            {
                base.Height = value;
                foreRect.Height = backRect.Height = setRect.Height = setRect.Width = base.Height / 3;
                foreRect.Y = backRect.Y = setRect.Y = base.Height / 3;
                Invalidate();
            }
        }

        ////////////////////////////////////////////////////////////////////////////////
        protected EventHandler OnValueChanged;
        public event EventHandler ValueChanged
        {
            add
            {
                if (OnValueChanged != null)
                {
                    foreach (Delegate d in OnValueChanged.GetInvocationList())
                    {
                        if (object.ReferenceEquals(d, value)) { return; }
                    }
                }
                OnValueChanged = (EventHandler)Delegate.Combine(OnValueChanged, value);
            }
            remove
            {
                OnValueChanged = (EventHandler)Delegate.Remove(OnValueChanged, value);
            }
        }
        /////////////////////////////////////////////////////////////////////////////////
        [Category("General"), Description("Control's Value"), Browsable(true)]
        public double Value
        {
            get { return myValue; }
            set
            {
                if (myValue < Minimum)
                    throw new ArgumentException("小于最小值");
                if (myValue > Maximum)
                    throw new ArgumentException("超过最大值");

                myValue = value;
                foreRect.Width = (int)(myValue / maximum * backRect.Width);
                setRect.X = (int)(myValue / maximum * (backRect.Width - backRect.Height) + backRect.X);

                if ((myValue - maximum) > 0)
                {
                    foreRect.Width = backRect.Width;
                    setRect.X = backRect.Width - backRect.Height + backRect.X;
                }

                //如果添加了响应函数,则执行该函数
                if (OnValueChanged != null)
                {
                    OnValueChanged(this, EventArgs.Empty);
                }

                Invalidate();
            }
        }
        /////////////////////////////////////////////////////////////////////////////////
        protected override void OnResize(EventArgs e)
        {
            base.OnResize(e);
            this.Width = Width;
            this.Height = Height;
            Invalidate();
        }
        ///////////////////////////////////////////////////////////////////////////////////

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            DrawRect(e.Graphics);
            DrawText(e.Graphics);
        }
        private void DrawRect(Graphics e)
        {
            Pen pen = new Pen(this.foregroundColor);

            e.FillRectangle(new SolidBrush(this.backgroundColor), backRect);
            e.DrawRectangle(new Pen(Color.Black), backRect);

            e.FillRectangle(new SolidBrush(this.foregroundColor), foreRect);
            e.DrawRectangle(new Pen(Color.Black), foreRect);

            e.FillRectangle(new SolidBrush(this.setRectColor), setRect);
            e.DrawRectangle(new Pen(Color.Black), setRect);
        }
        private void DrawText(Graphics e)
        {
            Point point = new Point();
            point.X = this.backRect.X + this.backRect.Width * 3 / 7;
            point.Y = this.backRect.Y + this.backRect.Height / 3;

            SolidBrush brush = new SolidBrush(fontColor);
            Font font = new Font(myFontFamily, this.fontSize);
            string percent = ((int)this.myValue).ToString() + "%";

            StringFormat format = new StringFormat();
            format.Alignment = StringAlignment.Center;
            format.LineAlignment = StringAlignment.Center;

            e.DrawString(percent, font, brush, backRect, format);
        }



    }
}

测试代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsAnlogProgressTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                if (anlogProgress1.Value + 1 < anlogProgress1.Maximum)
                {
                    anlogProgress1.Value += 1;
                }
                else
                {
                    anlogProgress1.Value = 0;
                }

                label1.Text = anlogProgress1.Value.ToString();
                anlogProgress2.Value = anlogProgress1.Value;
            }
            catch
            {

            }
            
        }
    }
}

 

2018-01-19 22:01:32 hkxia128 阅读数 348
  • C#WinForm图表控件应用详解

    本课程详细介绍图表控件(Chart)在C#WinForm程序开发中的应用,包括图表的基本要素,基本图表的创建,图表的类型,核心内容是用图表展示数据库中的数据。

    2347 人正在学习 去看看 武占文

在C# winform 应用程序中, 当自定义控件出现加载错误,  错误代码: x8007007E, 
表示自定义控件引用了外部dll, 但是用户端加载时, 却没有找到此DLL,
所以从工具箱中拖拽到windows窗口的时候, 出现错误.


解决方法:

将DLL copy到windows/SYSTEM32目录下,即可.

2019-06-12 09:16:00 zs1342084776 阅读数 886
  • C#WinForm图表控件应用详解

    本课程详细介绍图表控件(Chart)在C#WinForm程序开发中的应用,包括图表的基本要素,基本图表的创建,图表的类型,核心内容是用图表展示数据库中的数据。

    2347 人正在学习 去看看 武占文

图片控件中常用的属性如下表所示:

       

         图片控件中图片的设置除了可以直接使用 ImageLocation 属性指定图片路径以外,

还可以通过 Image.FromFile 方法来设置。实现的代码如下:

图片控件的名称 .Image = Image. FromFile( 图像的路径 );

【实例】

               实现图片交换。

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PictureBoxForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //窗体加载事件,设置图片空间中显示的图片
        private void Form1_Load(object sender, EventArgs e)
        {
            //指定图片路径:图片控件的名称 .Image = Image. FromFile( 图像的路径 );
            pictureBox1.Image = Image.FromFile(@"C:\Users\86186\Desktop\01.jpg");
            //图片在图片控件中被拉伸或收缩,适合图片的大小
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox2.Image = Image.FromFile(@"C:\Users\86186\Desktop\02.jpg");
            pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;         
        }

        //“交换”按钮的单击事件,用于交换图片
        private void button1_Click(object sender, EventArgs e)
        {
            //定义中间变量存放图片地址,用于交换图片地址
            PictureBox pictureBox = new PictureBox();
            pictureBox.Image = pictureBox1.Image;
            pictureBox1.Image = pictureBox2.Image;
            pictureBox2.Image = pictureBox.Image;
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace PictureBoxForm
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

             

 

                  

 

 

 

 

 

 

没有更多推荐了,返回首页