十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
VB6.0寫的,代碼很簡單,無意中寫成的。應(yīng)該可以參考。不需要任何api函數(shù)。在無邊框窗體頂部中放入一個(gè)label標(biāo)簽。然后用label的 mouse down 和mouse move事件實(shí)現(xiàn)
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請域名、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、扎魯特旗網(wǎng)站維護(hù)、網(wǎng)站推廣。
Dim a, b As Single
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
a = X
b = Y
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Form1.Move Left + X - a, Top + Y - b
End If
End Sub
控件是可以顯示在里面的,你只要加個(gè)label,把label的屬性設(shè)為visualble=fause就行。設(shè)置鼠標(biāo)經(jīng)過頭像的mouseHover和mouseLeave事件,當(dāng)mouseHover時(shí)label的屬性visualble=true,當(dāng)mouseLeave時(shí)label的屬性visualble=fause即可。窗體的鼠標(biāo)事件可以設(shè)置控件的cursor屬性,里面可以選擇許多種鼠標(biāo)圖形。 只要是正常的Form都可以改變窗體大小,但是無邊框的窗體只能用函數(shù)改變或者設(shè)置屬性,在debug后是不能改變的。拖動(dòng)窗體需要在窗體的load時(shí)間里面寫入當(dāng)鼠標(biāo)單擊不放時(shí)的事件即可,不難。
VB.NET沒寫過,C#的倒是經(jīng)常用,你看看能不能有所啟發(fā)
void?Creact()??//創(chuàng)建4*5格=20個(gè)按鈕的鍵盤
{
const?int?width=Convert.ToInt32(this.panel1.Width/20);
const?int?height=Convert.ToInt32(this.panel1.Width/25);
for(int?i=1;i=5;i++)
{
for(int?j=1;j=4;j++)
{
Button?b=new?Button();
b.Name="btn"+i.ToString()+j.ToString();
b.Left=40*j;
b.Top=30*i;
b.....???//位置設(shè)置
b.Text=CortoEnglist(i+j+65);//轉(zhuǎn)換字母鍵函數(shù)略寫
...
//加入鼠標(biāo)事件
b.MouseDown+=new?MouseHandler(btn_mousedown);
b.MouseUp+=new?MouseHandler(btn_mouseup);
b.MouseLeave+=new?MouseHandler(btn_mouseleave);
b.MouseMove+=new?MouseHandler(btn_mousemove);
this.panel1.Controls.Add(b)
}
}
}
public?int?Bealoon?br=false;??//判斷是否按下全局變量
void?btn_mousedown(object?sender,MouseEventArgs?e)??//鼠標(biāo)按下開始計(jì)算
{
br=true;
}
void?btn_mouseleave(object?sender,MouseEventArgs?e)?//鼠標(biāo)移開就結(jié)束
{
br=false;
}
void?btn_mouseup(object?sender,MouseEventArgs?e)?//鼠標(biāo)彈起也會(huì)結(jié)束
{
br=false;??//跟移開不重復(fù),你按下不松手去按另一個(gè)發(fā)現(xiàn)他就不會(huì)彈起,所以要加這個(gè)事件
}
void?btn_mousemove(object?sender,MouseEventArgs?e)?//按下狀態(tài)拖動(dòng)就有效
{
if(br==true)
{
((Button)sender).Left+=e.X;
((Button)sender).Top+=e.Y;
}
}這樣我I就給一組按鈕加了拖動(dòng)狀態(tài)