下面是我做的一个控件,在控件调试时,如果改变backcolor值时老是显示属性值无效。就是找不到原因,请问问题出在哪里?谢谢
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ControlLib
{
public partial class Line : UserControl
{
private float penWidth;
private Color penColor;
public Line()
{
InitializeComponent();
penWidth = 1;
penColor = Color.Black;
}
//public float lineWidth
//{
// get
// {
// return penWidth;
// }
// set
// {
// penWidth=value;
// }
//}
//public Color lineColor
//{
// get
// {
// return penColor;
// }
// set
// {
// penColor=value;
// }
//}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen colorPen = new Pen(this.BackColor, penWidth);
g.DrawLine(colorPen, new Point(0, 0), new Point(this.Width, this.Height));
}
private void Line_Resize(object sender, EventArgs e)
{
OnPaint(null);
}
private void Line_BackColorChanged_1(object sender, EventArgs e)
{
OnPaint(null);
}
}
}
c# onpaint事件与paint事件的区别 C#
paint是函数,OnPaint是虚拟函数的事件,联系在一起的时候,通常称为事件触发;;一旦发生paint就调用OnPaint事件!
C# OnPaint 在事件列表中找不到,在哪里才能找到?
额 哪个事件列表中只有Paint事件,而OnPaint是重写Paint事件.你在VS里写protected override void时就会有提示,在这里可以找到OnPaint事件下面是VS自动生成的代码:protected override void OnPaint(PaintEventArgs e){ base.OnPaint(e);}
C#中的on_paint事件有什么作用?
\/\/Paint事件 private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; \/\/画一个正方形 g.DrawRectangle(Pens.Blue, 10, 10, 200, 200); \/\/画一个圆 g.DrawEllipse(Pens.Red, 10, 10, 200, 200); } \/\/或者覆盖基类的OnPaint方...
C# paint事件和onpaint事件
OnPaint是Control类中的方法,Paint是事件,Paint是用于改变部分显示用比较合适,实际上Paint事件在OnPaint中被调用,如果你重写OnPaint但是不调用base.OnPaint(e);的话Paint事件就失效了,所以对于自定义控件而言要改变外观重写OnPaint更合适,一般情况下绘制图形编写Paint事件的处理方法就行。另外做小游戏的...
c# 控件的paint事件陷入死循环 下面一段代码,count的值会一直加,原因是...
对控件的值进行修改后就会立即触发 OnPaint 事件。所以当你在 label1 的 OnPaint 事件处理方法里修改了 label1 的属性(Text)后,由于 UI 界面发生了变化,因此导致界面重置并触发 OnPaint,然后就陷入死循环了 =-=
C# paint事件和onpaint事件 贪食蛇
onpaint方法是调用paint事件的,用哪一个,效果是一样,就看那一个方便了 内部是这样实现的:protected virtual OnPaint(PaintEventArgs e){ if(paint != null){ paint(this,e);} } 如果直接重写onpaint,paint就会失效;这样就不会失效:protected override OnPaint(PaintEventArgs e){ base.OnPaint(e)...
C#如何让控制onpaint事件
加一个开关(bool变量)a,只有当timer1_Tick时a才为true。然后你override OnPaint方法,在OnPaint开头判断,如果a不为true直接return,只有a为true时才执行绘图,绘图结束后把a设为false。你看如何?
C# winform中,为什么鼠标移动也会触发Onpaint()事件?
鼠标在控件上移动的时候 由于控件被鼠标移过的地方(被鼠标遮住的部分)需要重绘 所以会触发OnPaint 不然鼠标移过的地方都会成空白了
C#中的onpaint函数怎么用的
System.Windows.Forms.Form类中有一个Invalidate()方法成员,它把客户窗口区域标记为无效,并保引发Paint事件。Invalidate()有几个重载方法,可以给它传送一个矩形参数(Rectangle类型),指定(使用页面坐标)需要重新绘制的窗口区域;如果不提供它任何参数,就把整个客户区域标记为无效;如果绘制区域不是矩形,...
c# Onpaint事件
还有那种做法吗?要想调用OnPaint事件,那样做是不对的。有个方法可以调用OnPaint事件。OnPaint(null);改为:this.Invalidate();\/\/调用this.OnPaint事件。