vb中使用graphics.drawstring画字符串窗体只能显示一部分,怎么设置显示全部
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb中使用graphics.drawstring画字符串窗体只能显示一部分,怎么设置显示全部相关的知识,希望对你有一定的参考价值。
Dim myfont As New Font("微软雅黑", 50)
Dim mybrush As New SolidBrush(Color.Red)
Dim g As Graphics = Me.CreateGraphics
g.DrawString("今天发工资啦!", myfont, mybrush, 10, 30)
改变字体大小就可以全部显示了
在多个事件(paint,click)中测试过,结果没有发生改变
应该是绘画文字后,窗口重绘时清除了那一块区域。
所以放窗体的Paint事件里就行了。
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint' 在 Paint 事件参数中提供了 Graphics. 无需 Create.
Using g As Graphics = e.Graphics
Dim myfont As New Font("微软雅黑", 50)
Dim mybrush As New SolidBrush(Color.Red)
g.DrawString("今天发工资啦!", myfont, mybrush, 10, 30)
End Using
End Sub追问
这个代码就是在窗体paint事件中
追答是啊,你直接复制粘贴就OK了...
追问我意思这个代码就是写在Paint事件中的,但是还是无法全部显示
追答如果你确定了代码是早 Form 的 Paint 控件里。
那你查下你窗口上是不是还有其他控件?
所有我帖的代码,都是测试过的。也可以把你的项目打包给我看。
用你的代码可以了,按钮的click事件怎么调用paint事件的过程?
追答看代码中的Form1_Paint最后的Handles Me.Paint。
你可以这样理解
Handles(绑定) Me(控件名,这里是说这个类,也就是窗口了) . Paint(事件类型)
把中文字提取出来就是
绑定到窗口的Paint事件类型。
所以要改成按扭的话,把Me改成那个控件名就行了。
Graphics.DrawString 指定文本的不透明度
【中文标题】Graphics.DrawString 指定文本的不透明度【英文标题】:Graphics.DrawString specify opacity of text 【发布时间】:2011-09-29 12:55:43 【问题描述】:是否可以指定使用Graphics.DrawString
方法编写的文本的不透明度?
我正在做这样的事情,但如果可能的话,我希望我的文字是半透明的。
目前我正在这样做:
Graphics graphics = Graphics.FromImage(image);
graphics.DrawString("This is a watermark",
new Font("Arial", 40),
new SolidBrush(Color.Red),
0,
0);
【问题讨论】:
【参考方案1】:试试
new SolidBrush(Color.FromArgb(0x78FF0000))
希望对你有帮助
【讨论】:
【参考方案2】:试试:
int opacity = 128; // 50% opaque (0 = invisible, 255 = fully opaque)
Graphics graphics = Graphics.FromImage(image);
graphics.DrawString("This is a watermark",
new Font("Arial", 40),
new SolidBrush(Color.FromArgb(opacity, Color.Red)),
0,
0);
【讨论】:
以上是关于vb中使用graphics.drawstring画字符串窗体只能显示一部分,怎么设置显示全部的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Java 中居中 Graphics.drawString()?
为啥字体大小为 101 的 Graphics2D.drawString 的字母“o”会损坏?