微信抽签小程序怎么制作
编辑:小飞燕 发布时间:2021-04-17 10:42:48
比较近有朋友在微信朋友圈转发一些抽签的小程序,类似于抽取本月运势之类的,看上去很好玩,于是小编尝试着做了一个微信抽签小程序,以下是具体的制作教程和相关代码。
着手做了前后也就一小时。
我不善于做ui,小程序界面很丑,请勿喷。
先展示一下程序界面
说一下布局,左边就是一个列表视图视图模式是大图标方式,这里注意下因为要绑定一个图片列表记得要修改下图片列表里面图片显示的尺寸,否则会图片很小。
流程是这样的:
添加好预选名单后开始,这时候就循环切换列表视图的项目的imageindex(使用两张图片,一张是选中一张未选中的)
这里切换项目的图片是单独放在一个线程里面的,线程访问列表视图必须使用委托来访问,否则会出错
跑马灯效果的实现,就是刚开始切换的时间长点,接下来时间越来越短,这里用的是线的睡眠来做的
下面给出小程序代码
[csharp]查看普通复印系统;
使用系统。收藏品。通用;
使用system.componentmodel
使用system.data
使用系统.绘图
使用system.linq
使用system.text
使用系统。窗户。表格;
使用系统.线程
使用system.io
使用浏览器;
命名空间奖
{
公共分部类表单1 :表单
{
public static string think shop=' ';
public static int no _ image=4;
public static int yes _ image=5;
公共表单一
{
initializecomponent组件
这个。购物清单。view=view。大图标;
这个。购物清单。大型imagelist=this。imagelist 1;
定时器1。开始;
readload
负载;//加载商家
}
private delegate void listviewdelegate(int index);
public void changeitem(int index)
{
if(this。购物清单。invoke required)//不能访问就创建委托
{
listview delegate d=new listview delegate(更改项目);
shoplist.invoke(d,new object[]{ index });
}
其他
{
变化指数(index);
}
}
//让指数的项目成为选中状态
public void changeindex(int index)
{
//这个。购物清单。开始更新;
for(int i=0;我购物清单。物品。计数;i )//先把所有的项目恢复原样
{
if (i!=索引)
{
if (shoplist.items[i]).imageindex==yes_image)
购物清单imageindex=no _ image//设置为未选中样式
}
其他
购物清单imageindex=yes _ image//设置为选中状态
}
//这个。购物清单。结束更新;//结束数据处理,ui界面一次性绘制。
}
private void btn_add_click(对象发送者eventargs e)
{
if (txt_shopname.text==' ')
{
messagebox.show('不能为空!');
返回;
}
这个。购物清单。开始更新;
listview item i=new listview item;
i.imageindex=no _ image
i。text=txt _ shop name。文本;
这个。购物清单。物品。add(i);
这个。购物清单。结束更新;//结束数据处理,ui界面一次性绘制。
txt _ shopname.text=
l _商店编号。text=商店列表。物品。数数。tostring
}
私人代表字符串listviewitemdelegate(int index);
//获取项目的项值
公共字符串getitem(int index)
{
if(this。购物清单。invoke required)//不能访问就创建委托
{
list view item delegate d=new list view item delegate(getitem);
return shoplist.invoke(d,new object[] { index }).方法
}
其他
{
if(购物清单。物品。计数;0索引
返回购物清单.物品[索引].文本;
其他
{
返回"错误";
}
}
}
公共图书馆标志=true
公共无效效果(对象结果)
{
int time=900
而(标志)
{
for(int j=0;j购物清单。物品。计数;j)
{
线程。睡眠(时间);
if(时间;100)
time-=200;
变更项目(j);
}
}
for(int j=0;j购物清单。物品。计数;j)
{
线程。睡眠(时间);
if(时间900)
时间=100;
变更项目(j);
//在比较后一圈时停止圈后停止
if(j==int。解析(结果。tostring))
{
显示结果(int。解析(结果。tostring));
打破;
}
}
}
私有委托void result delegate(int index);
public void showresult(int index)
{
if(this。l结果。invoke required)//不能访问就创建委托
{
listviewdelegate d=new listviewdelegate(显示结果);
l_result.invoke(d,new object[]{ index });
}
其他
{
string shop name=getitem(index);
' l_result.text='抽中是: '店名
}
}
public event eventhandler getresult
受保护的void ongetresult(eventargs e)
{
if (getresult!=null)
getresult(this,e);
}
私人作废按钮1 _(对象发送者eventargs e)
{
if(购物清单。选定的项目。计数;0)
{
int index=商店列表。选定得项目[0].指数;
购物清单。物品。移除at(索引);
}
}
private void btn_start_click(对象发送者eventargs e)
{
标志=真
int num=-1;
if (thinkshop!='')
{
for(int i=0;我购物清单。物品。计数;i)
{
string tmp=shoplist.items[i].文本;
if (tmp.equals(thinkshop))
{
num=i;
打破;
}
}
}
if(num==-1)
{
random rd=new random(datetime。现在。毫秒);
num=rd。下一步(购物清单。物品。计数);
}
新线程(新参数化线程启动(效果))。start(num);
btn _ start.enabled=false
btn _ stop.enabled=true
}
私人作废按钮2 _(对象发送者eventargs e)
{
购物清单。物品。清晰;
}
private void btn_stop_click(对象发送者eventargs e)
{
btn _ start.enabled=true
btn _ stop.enabled=false
flag=false
}
private void timer1_tick(对象发送者eventargs e)
{
l _ time。text=日期时间。现在。tolongtimestring
}
公共void write(字符串消息)
{
filestream fs=new filestream(' t . dat ',文件模式。create);
流写入器sw=新流写入器(fs,编码。utf8);
sw。write(msg);
sw.close
fs.close
}
public void readload
{
if (file.exists('t.dat '))
{
filestream fs=new filestream(' t . dat ',filemode.open,fileaccess.read,file share。无);
流阅读器sr=新的流阅读器(fs,编码。utf8);
thinkshop=sr.readline
sr.close
fs.close
}
}
//保存商家
公共作废保存
{
filestream fs=new filestream(' s . dat ',文件模式。create);
流写入器sw=新流写入器(fs,编码。utf8);
for(int i=0;我购物清单。物品。计数;i)
{
sw.writeline(shoplist.items[i]).文本);
}
sw.close
fs.close
messagebox.show('保存成功!');
}
//加载商家
公共空负荷
{
这个。购物清单。开始更新;
if (file.exists('s.dat '))
{
filestream fs=new filestream(' s . dat ',filemode.open,fileaccess.read,file share。无);
流阅读器sr=新的流阅读器(fs,编码。utf8);
字符串行=null
while ((line=sr.readline)!=null)
{
//自动加载文件中的商家名
listview item i=new listview item;
i.imageindex=no _ image
i.text=line
这个。购物清单。物品。add(i);
}
sr.close
fs.close
}
这个。购物清单。结束更新;//结束数据处理,ui界面一次性绘制。
}
private void form1_activated(对象发送者eventargs e)
{
//注册热键ctrl f,id号为101。hotkey.keymodifiers.ctrl也可以直接使用数字2来表示。
hotkey.registerhotkey(handle,100,hotkey.keymodifiers.ctrl,key。f);
hotkey.registerhotkey(handle,101,hotkey.keymodifiers.ctrl,key。s);
hotkey.registerhotkey(handle,102,hotkey.keymodifiers.alt,key。z);
}
private void form1_leave(对象发送者eventargs e)
{
//注销编号号为100的热键设定
hotkey.unregisterhotkey(handle,100);
hotkey.unregisterhotkey(handle,101);
hotkey.unregisterhotkey(handle,102);
}
//重载弗罗*中的窗口过程函数
受保护覆盖无效wndproc(参考消息m)
{
const int wm _ hotkey=0x0312
//按快捷键
开关(m.msg)
{
案例wm_hotkey:
开关(m.wparam.toint32)
{
案例100:
中国国际新型肥料展览会
打破;
案例101:
保存;
打破;
案例102:
删除;
打破;
}
打破;
}
基地。wnd进程(参考m);
}
公共作废删除
{
thinkshop=
if (file.exists('t.dat '))
文件。删除(' t . dat ');
}
public void fshow
{
form2 f=新表单2
f.showdialog
}
}
}
微信抽签小程序要怎么制作大家学会了吗?上文中提供了详细的流程和代码,只要是了解小程序开发技术的人应该都能一次性成功。如果还想获取更多相关资料请关注货源代理网小程序频道。
这里是标题开头微信小程序购物车功能实现,怎么弄微信小程序购物车功能?这里是标题尾
微信小程序购物车功能实现,怎么弄微信小程序购物车功能?微信小程序要开发出来需要很多开发程序代码,如今小编就来说说微信小程序实现购物车功能的具体方法,接下来看看怎么弄微信小程序购物车功能?
微信小程序购物车功能实现,有需要此功能的朋友可以参考下。
摘要: 加减商品数量,汇总价格,全选与全不选
设计思路:
一、从网络上传入以下数据数据格式的数组1.购物车id:cid 2 .标题标题3。数量num 4 .图片地址5.价格价格6。小计7.是否选中选中
其次,复选框切换操作。如果已经选中,后会变成未选中,反之亦然。索引作为logo而不是cid,方便遍历
三、全选操作第一次全部选中,第二次全部未选中。“全部选择”按钮本身也遵循切换转换
4.结算按钮,取出选定的cid数组,通过网络提交给服务器。在此,敬酒作为结果演示。
5.用分档器加减,用索引做标识,写回num值。
不及物动词布局:所有选择与结算按钮底部对齐,购物车商城适应其高度,类似安卓的重量。
步骤:
初始数据渲染
1.1布局和样式表
顶部是商品列表,底部是全选按钮和即时结算按钮
商品列表的左边部分是商品缩略图,右上角是商品标题,右下角是商品价格和数量,其中商品数量由wxstepper加减
js:初始化一个数据源,经常是从网络上获取的。相关界面见:https://mp . weixin . qq.com/debug/wxa doc/dev/api/network-request . html
布局文件
样式表
上一篇:小程序拨打电话标签怎么录入
下一篇:小程序图片跳转功能设置步骤