高分求助! 我再winfrm上有一个panel1我想鼠标移动的时候。在鼠标移动的位置写一个字符串,比如写 “士大夫似的发生地方",我应该怎么做。字符串不要压盖。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 panel1里放一个label1,label1.Text = "士大夫似的发生地方";label1.Visible = false;然后在panel1的MouseClick写:private void panel1_MouseClick(object sender, MouseEventArgs e){ label1.Left = e.X; label1.Top = e.Y; label1.Visible = true;} 在鼠标开始移动的位置上新建一个Label,作为Label起点,具体代码如下bool flag = false; private void Form1_MouseMove(object sender, MouseEventArgs e) { if (flag == false) { Point point = new Point(e.X, e.Y); Label label = new Label(); label.Location = point; label.Text = "士大夫似的发生地方"; label.Parent = panel; flag = true; } } 补充一下 flag 是为了不重复,只运行一次 看错了,是写在MouseMove事件里private void panel1_MouseMove(object sender, MouseEventArgs e){ label1.Left = e.X; label1.Top = e.Y; label1.Visible = true;} private void panel1_MouseMove(object sender, MouseEventArgs e) { label1.Left = e.X+8; label1.Top = e.Y+8; label1.Parent = panel1; label1.Visible = true; ; label1.Text = "csdn"; } 可以用ToolTip控件,把时间设置为0就可以了。 this.panel1.Update(); this.panel1.Invalidate(); System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.OrangeRed); System.Drawing.Font myFont = new System.Drawing.Font("仿宋", 8); SolidBrush brush = new SolidBrush(Color.Black); gf.DrawString("abcdefg", myFont, brush, pt);这样可以实现。如果写的东西少的话可以,如果数据大,可能会很闪。 ToolTip控件,把时间设置为0就可以了。 ToolTip控件,把时间设置为0就可以了。 总结如下:1. 可以用ToolTip控件,把时间设置为0就可以了。2. 用MouseMove事件private void panel1_MouseMove(object sender, MouseEventArgs e){ label1.Left = e.X+8; label1.Top = e.Y+8; label1.Parent = panel1; label1.Visible = true; ; label1.Text = "csdn"; }3. 使用System.Drawing this.panel1.Update(); this.panel1.Invalidate(); System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.OrangeRed); System.Drawing.Font myFont = new System.Drawing.Font("仿宋", 8); SolidBrush brush = new SolidBrush(Color.Black); gf.DrawString("abcdefg", myFont, brush, pt); 为什么不能显示在checkedListBox 用C#代码实现个人进程管理器 以前res格式的老版资源文件如何用C#代码读取? listview控件的detail模式无法显示 如何用C#实现把已知的IP地址,子网掩码,网关,和 DNS进行设定 多表查询的问题 【急】回调函数里调用其他函数的问题 c# 接口不是多余的吗 简单问题: C#中datagrid绑定了dataset,如何更改列标题的名字 关于文件名写如数据库的问题 一台计算机可以同时使用多个SerialPort控件和多个端口通信吗? TreeView最终节点的判定
panel1里放一个label1,label1.Text = "士大夫似的发生地方";label1.Visible = false;然后在panel1的MouseClick写:
private void panel1_MouseClick(object sender, MouseEventArgs e)
{
label1.Left = e.X;
label1.Top = e.Y;
label1.Visible = true;
}
bool flag = false;
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (flag == false)
{
Point point = new Point(e.X, e.Y);
Label label = new Label();
label.Location = point;
label.Text = "士大夫似的发生地方";
label.Parent = panel;
flag = true;
}
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
label1.Left = e.X;
label1.Top = e.Y;
label1.Visible = true;
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
label1.Left = e.X+8;
label1.Top = e.Y+8;
label1.Parent = panel1;
label1.Visible = true; ;
label1.Text = "csdn"; }
this.panel1.Invalidate(); System.Drawing.Pen myPen =
new System.Drawing.Pen(System.Drawing.Color.OrangeRed);
System.Drawing.Font myFont =
new System.Drawing.Font("仿宋", 8);
SolidBrush brush =
new SolidBrush(Color.Black); gf.DrawString("abcdefg", myFont, brush, pt);这样可以实现。如果写的东西少的话可以,如果数据大,可能会很闪。
1. 可以用ToolTip控件,把时间设置为0就可以了。
2. 用MouseMove事件
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
label1.Left = e.X+8;
label1.Top = e.Y+8;
label1.Parent = panel1;
label1.Visible = true; ;
label1.Text = "csdn";
}
3. 使用System.Drawing
this.panel1.Update();
this.panel1.Invalidate(); System.Drawing.Pen myPen =
new System.Drawing.Pen(System.Drawing.Color.OrangeRed);
System.Drawing.Font myFont =
new System.Drawing.Font("仿宋", 8);
SolidBrush brush =
new SolidBrush(Color.Black); gf.DrawString("abcdefg", myFont, brush, pt);