VB.NET没写过,C#的倒是经常用,你看看能不能有所启发
专注于为中小企业提供成都网站制作、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业井研免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
void Creact() //创建4*5格=20个按钮的键盘
{
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..... //位置设置
b.Text=CortoEnglist(i+j+65);//转换字母键函数略写
...
//加入鼠标事件
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) //鼠标按下开始计算
{
br=true;
}
void btn_mouseleave(object sender,MouseEventArgs e) //鼠标移开就结束
{
br=false;
}
void btn_mouseup(object sender,MouseEventArgs e) //鼠标弹起也会结束
{
br=false; //跟移开不重复,你按下不松手去按另一个发现他就不会弹起,所以要加这个事件
}
void btn_mousemove(object sender,MouseEventArgs e) //按下状态拖动就有效
{
if(br==true)
{
((Button)sender).Left+=e.X;
((Button)sender).Top+=e.Y;
}
}这样我I就给一组按钮加了拖动状态
Canvas Name="LayoutRoot" Background="LightGray"
!-- Create an Ellipse --
Ellipse Name="mcCircle" Width="200" Height="200"
Canvas.Left="60" Canvas.Top="20"
Fill="Gray" Stroke="Black" StrokeThickness="2"
/Ellipse
!-- Create Slider controls --
Slider Name="RedSlider" Width="300" Height="20"
Background="Red" Maximum="255" Minimum="0"
Canvas.Left="30" Canvas.Top="240"
ValueChanged="RedSlider_ValueChanged"/
Slider Name="GreenSlider" Width="300" Height="20"
Background="Green" Maximum="255" Minimum="0"
Canvas.Left="30" Canvas.Top="270"
ValueChanged="GreenSlider_ValueChanged"/
Slider Name="BlueSlider" Width="300" Height="20"
Background="Blue" Maximum="255" Minimum="0"
Canvas.Left="30" Canvas.Top="300"
ValueChanged="BlueSlider_ValueChanged"/
/Canvas
private void RedSlider_ValueChanged(object sender,RoutedPropertyChangedEventArgsdouble e)
{
UpdateCircleWithColors();
}
private void GreenSlider_ValueChanged(object sender,RoutedPropertyChangedEventArgsdouble e)
{
UpdateCircleWithColors();
}
private void BlueSlider_ValueChanged(object sender,RoutedPropertyChangedEventArgsdouble e)
{
UpdateCircleWithColors();
}
private void UpdateCircleWithColors()
{
Color clr = Color.FromArgb(255, Convert.ToByte(RedSlider.Value),
Convert.ToByte(GreenSlider.Value), Convert.ToByte(BlueSlider.Value));
mcCircle.Fill = new SolidColorBrush(clr);
}
有:
HScrollBar ---- 水平滚动条
VScrollBar ---- 垂直滚动条
Dim i As Integer
For i = 0 To Me.Width - Button1.Width 'me为容器,典型的是form1
Button1.Left += 1
Windows.Forms.Application.DoEvents()
Next
原理:不断地变化button1的X轴,使其向右移,同样,只要控制好其x,y轴,就可以变化button的变化
如果是做小游戏,建议弄成类吧,把其中的左(右)移或对角其它移动弄成其接口,以便操作。
由于涉及内容太多,不再详述。原理都一样