重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
VB.NET画图是不能设置双缓冲的,双缓冲是指窗体,从来没说是针对控件。
成都创新互联长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为龙文企业提供专业的成都网站建设、成都网站制作,龙文网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
不用graphic.clear清理重画就不会闪烁。你可以先把容器删了再重新建立一个再去画。
简单举例:
Graphics g;
Pen p;
Panel pl;
构造函数初始化:
p=new Pen(Color.Red,2);
pl=panel1;
造成闪烁的画法:
g=pl.CreateGraphics();
g.Clear(SystemColor.ButtonFace);
//.....画新的
不会闪烁的办法:
this.Controls.ReMoveAt(panel1);
pl=new Panel();
pl.Name="panel1";
//....创建容器控件
this.Controls.Add(pl);
//继续画
先查一下有没有用相应事件去修改鼠标的状态,鼠标移动的事件或者鼠标移动到tabcontrol的事件!
你如果使用VB.NET,点击其中一个“tab order”的图标,此时您可以单击每个控件的数字(越小越表示越容易被聚焦),NET默认就可以用Tab进行焦点切换(顺序就是按照数字从小到大的顺序)。 至于按Enter自动切换,您需要自行在支持按键的控件事件中(比如TextBox)的KeyPress事件中编写代码: private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
XXX(控件).Focus();
}
}
将模块中的过程写为public,在调用
比如模块中:
public
sub
text()
......
end
sub
主窗体调用代码:
call
text()
首先,设定Timer控件的Enabled属性为True,Interval属性为1000(单位为毫秒)。
然后,添加程序代码如下:
private void timer1_Tick(object sender, EventArgs e)
{
if (this.label1.BackColor == Color.Red) //判断当前背景色是否为红色
this.label1.BackColor = Color.Blue; //如果是则变为蓝色
else //如果当前背景色不是红色
this.label1.BackColor = Color.Red; //将背景色变为红色
}