用Button控件就可以了 修改BackgroundImage 屬性 類似這樣
創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十載品質(zhì),值得信賴!
Button1.BackgroundImage = Image.FromFile("C:\Users\hp\Desktop\EMOTICONS\EMOTICON SMILE.png")
如果要實(shí)現(xiàn)動(dòng)態(tài)效果的話需要2個(gè)圖片當(dāng)Button1_MouseHover事件時(shí)也就是鼠標(biāo)停留在button上的時(shí)候顯示一個(gè)圖片,當(dāng)Button1_MouseLeave事件時(shí),也就是鼠標(biāo)離開button時(shí)顯示原來的圖片,這樣就是動(dòng)態(tài)的了.
新建一個(gè)Winform,拖兩個(gè)圖片框。圖片框1在設(shè)計(jì)器中選擇一個(gè)圖片(尺寸在圖片框容納為佳)。如下代碼測(cè)試通過:
private?void?button1_Click(object?sender,?EventArgs?e)
{
Image?img1?=?this.pictureBox1.Image;
Image?img2?=?CropToCircle(img1);
this.pictureBox2.Image?=?img2;
}
public?Image?CropToCircle(Image?img1)
{
Image?img2?=?new?Bitmap(img1.Width,?img1.Height,?
img1.PixelFormat);
Graphics?g?=?Graphics.FromImage(img2);
using?(Brush?br?=?
new?SolidBrush(SystemColors.Control))//背景色
{
g.FillRectangle(br,?0,?0,?
img2.Width,?img2.Height);
}
GraphicsPath?path?=?new?GraphicsPath();
path.AddEllipse(0,?0,?img2.Width,?img2.Height);
g.SetClip(path);
g.DrawImage(img1,?0,?0);
return?img2;
}
可以
做一個(gè)ocx控件,思路如下:用api函數(shù)做一個(gè)圓形窗體,在里面放置按鈕或者圖片框,將窗體的屬性綁定到按鈕或者圖片框的屬性,打包生成ocx控件,就成為你想要的圓形按鈕了
如果嫌麻煩,可以直接下一個(gè)這樣的控件,網(wǎng)上很多的
畫圓
Circle 方法可畫出圓形和橢圓形的各種形狀。另外,Circle 方法還可以畫出圓?。▓A的一部分)和楔形餅塊。使用變化的 Circle 方法,可畫出多種曲線。
為了畫圓,Visual Basic 需要給出該圓的圓心位置和它的半徑。畫一個(gè)理想圓的語法是:
[object.]Circle [Step](x, y), radius[, color]
方括號(hào)表明 object 和 Step 關(guān)鍵字是任選項(xiàng)。如果不指定 object,則認(rèn)為指定的就是當(dāng)前的窗體。x 參數(shù)和 y 參數(shù)是圓心的坐標(biāo),radius 參數(shù)是圓的半徑。例如,下面語句將畫出一個(gè)以 (1200,1000) 為圓心、750 為半徑的圓:
Circle (1200, 1000), 750
這個(gè)語句產(chǎn)生的精確作用,還要依賴于窗體的大小和窗體的坐標(biāo)系。如果不知道窗體的大小,也就不能知道這個(gè)圓是否可見。可使用繪圖區(qū)的標(biāo)尺屬性,將該圓的圓心置于窗體的中心處:
Circle ((ScaleWidth + ScaleLeft) / 2, (ScaleHeight + _
ScaleTop) / 2), ScaleWidth / 4
此時(shí),關(guān)于 ScaleWidth 和 ScaleHeight 所有應(yīng)知道的是,它們能幫助將圖形定位于窗體的中心。
'我給你找到了,設(shè)置region屬性就可
Private?Sub?PictureBox1_DoubleClick(sender?As?System.Object,?e?As?System.EventArgs)?Handles?PictureBox1.DoubleClick
If?PictureBox1.Region?Is?Nothing?Then
Dim?path?As?New?System.Drawing.Drawing2D.GraphicsPath
path.AddEllipse(0,?0,?200,?200)
PictureBox1.Region?=?New?Region(path)
Else
PictureBox1.Region?=?Nothing
End?If
End?Sub
'這個(gè)雙擊圖片框使其變形,通過GraphicsPath對(duì)象可以作出各種形態(tài)來,比如可作出文字形狀
Dim?stringText?As?String?=?"我是誰"
Dim?family?As?New?FontFamily("Arial")
Dim?myfontStyle?As?Integer?=?CInt(FontStyle.Italic)
Dim?emSize?As?Integer?=?86
Dim?origin?As?New?Point(20,?20)
Dim?format?As?StringFormat?=?StringFormat.GenericDefault
path.AddString(stringText,?family,?myfontStyle,?emSize,?_
origin,?format)
PictureBox1.Region?=?New?Region(path)
記得VB6當(dāng)中有Shape控件,但是VB.net里這個(gè)控件不存在了。
提個(gè)思路:使用Picture控件或Label控件,通過代碼在控件里繪圖想要的圖形,可以試試。