Opis forum
wydziedziczyć się z picturebox i napisać klaskę obrazka, której można ustawić ramkę o zadanym kolorze.
napisać demo ładujące obrazek + 3 przyciski ustawiające 2 kolory ramki + usuwające ramkę.
priorytet mały, żeby się czegoś nauczyć, ale przyda się na przysżłość.
jarmur?
edit:
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 logotrial { public partial class Form1 : Form { List<BorderedImage> m_imgList; public Form1() { InitializeComponent(); m_imgList = new List<BorderedImage>(); BorderedImage img; Bitmap b = new Bitmap(100, 100); Graphics g = Graphics.FromImage(b); g.Clear(Color.Yellow); img = new BorderedImage(); img.Size = new System.Drawing.Size(100, 100); img.Location = new System.Drawing.Point(100, 100); img.Image = new Bitmap(b); m_imgList.Add(img); img = new BorderedImage(); img.Size = new System.Drawing.Size(100, 100); img.Location = new System.Drawing.Point(300, 100); img.Image = new Bitmap(b); m_imgList.Add(img); img = new BorderedImage(); img.Size = new System.Drawing.Size(100, 100); img.Location = new System.Drawing.Point(100, 300); img.Image = new Bitmap(b); m_imgList.Add(img); img = new BorderedImage(); img.Size = new System.Drawing.Size(100, 100); img.Location = new System.Drawing.Point(300, 300); img.Image = new Bitmap(b); m_imgList.Add(img); for (int i = 0; i < m_imgList.Count; ++i) this.Controls.Add(m_imgList[i]); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace logotrial { public class BorderedImage : PictureBox { private bool m_border; private Color m_borderColor; public BorderedImage() { m_border = false; m_borderColor = Color.Red; this.Image = new Bitmap(Width, Height); //this.Click += new System.EventHandler(BorderedImageClick); //this.Paint += new System.Windows.Forms.PaintEventHandler(BorderedImagePaint); } private void BorderedImagePaint(object sender, PaintEventArgs e) { if (m_border) { Pen pen = new Pen(Color.Red, 3.0f); e.Graphics.DrawRectangle(pen, 10, 10, e.ClipRectangle.Width - 20, e.ClipRectangle.Height - 20); } } private void BorderedImageClick(object sender, EventArgs e) { Border = !Border; } public Color Color { get { return m_borderColor; } set { m_borderColor = value; this.Refresh(); } } public bool Border { get { return m_border; } set { m_border = value; this.Refresh(); } } } }
Offline