GDI+画自定义控件。

zhuoyue9935 2010-10-14 02:54:56
用GDI画自定义控件的相关知识。资料,61689935@qq.com,随时欢迎资料的来临。。。


问一个我现在遇到的问题,我设置了一个属性,string类型,在属性面板里设置的时候想让它时时的把这个字符串画在自定义控件里。请问下怎么弄?
...全文
225 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuoyue9935 2010-10-14
  • 打赏
  • 举报
回复
是写我自己定义的属性的,就像button控件,在设置了text属性后,按enter或光标移走,按钮的text就立刻显示在button里的,按照上面的写法,要点击一下from,或者重新生成,或者,调试。才会显示出最新的字符串。
请问这是为什么?不能向微软的那样立刻的显示。
GDi+里面那个工作的机制是什么?过程也行,一些事件被条用的时间。非常QQQ
kingweaver1 2010-10-14
  • 打赏
  • 举报
回复
我没理解错的话,你问的是一个设计时的问题。你在VS中实际试一下,属性值改变之后,设计窗口你的控件就会变色的。
kingweaver1 2010-10-14
  • 打赏
  • 举报
回复
不需要运行,你在一个Form中加入一个你的控件的实例,修改属性值就可以变色。
不是很清楚你说的设置属性是什么意思,是指在属性框中设置你自己的属性吗?PropertyGrid中没有鼠标移出的说法,只有属性值发生修改的说法。在属性框中输入新的值,回车或者将焦点切换,都会导致属性值发生修改,我理解你说的鼠标离开就是第二种方法,只不过鼠标移开之后,你需要点击其他控件把焦点转移才行。仅仅是移动鼠标是不行的。
zhuoyue9935 2010-10-14
  • 打赏
  • 举报
回复
怎么解决呀。。。。。。。。晕死我也
zhuoyue9935 2010-10-14
  • 打赏
  • 举报
回复
这样写的效果就是需要运行了开能看到字符串的内容,或者重新生成才会画在上面。我想的是在那里设置了属性后光标离开那个属性输入框,form设计器里的显示就变成新的
APP开发王 2010-10-14
  • 打赏
  • 举报
回复
对 就是楼上那样做!
kingweaver1 2010-10-14
  • 打赏
  • 举报
回复
public class SelfDrawButton: UserControl
{
public SelfDrawButton()
{

}

public string SelfText
{
set
{
if(_text != value)
{
_text = value;
this.Invalidate();
}
}
get
{
return this._text;
}
}

protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawString(this._text);
}
}
zhuoyue9935 2010-10-14
  • 打赏
  • 举报
回复
public string Text_btn
{
get { return _text_btn; }
set
{
_text_btn = value;
_textPoint = GetTextPoint(_text_btn);
InitializeComponent();
}
}

感觉上还是要条用onpaint方法。但是不知道怎么调用。

。。。。。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧