zoukankan      html  css  js  c++  java
  • 模仿ICE的structured panorama小按钮

    这个按钮的目的是用于手动排列图片序列,应该说写得比较精巧,我使用csharp进行模仿,主要采用的是自动控件创建技术。结果比较简陋,实现功能而已,放出来大家一起学习。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    namespace 动态创建
    {
        public partial class Form1 : Form
        {
            int iclick1 = -1;
            int iclick2 = -1;
            Button[] btns = new Button[16];
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                //自动创建
               
                 for (int i = 0; i < 16; i++)
                 {
                     btns[i] = new Button();
                     btns[i].Name = i.ToString();//加个名字方便集中操作
                     btns[i].Size = new Size(4848);
                     int ix = 20+60*(i%4);
                     int iy = 20+60*(i/4);
                     btns[i].Location = new Point(ix, iy);
                     this.Controls.Add(btns[i]);
                     //绑定事件
                     btns[i].Click += new System.EventHandler(this.btns_Click); 
                     btns[i].MouseHover+=new System.EventHandler(this.btns_MouseHover);
                     btns[i].MouseLeave+=new System.EventHandler(this.btns_MouseLeave);
                 }
            }
            //集中事件处理
            private void btns_Click(object sender, EventArgs e)
            {
                Button btn = (Button)sender;
                int index = int.Parse(btn.Name);
                if (index == 0 || index == 3 || index == 12 || index == 15)
                {
                    //将上一个选择的按钮状态变为空
                    if (iclick1 != -1)
                        btns[iclick1].Text = "";
                    if (iclick2 != -1)
                        btns[iclick2].Text = "";
                    iclick1 = index;
                    btn.BackColor = Color.Empty;
                    btn.ForeColor = Color.Black;
                    btn.Text = "1";
                }
                if (index == 1 || index == 4)
                {
                    if (iclick1 != 0)
                        return;
                    //将上一个选择的按钮状态变为空
                    if(iclick2 != -1)
                        btns[iclick2].Text = "";
                    iclick2 = index;
                    btn.BackColor = Color.Empty;
                    btn.ForeColor = Color.Black;
                    btn.Text = "2";
                }
                if (index == 2 || index == 7)
                {
                    if (iclick1 != 3)
                        return;
                    //将上一个选择的按钮状态变为空
                    if (iclick2 != -1)
                        btns[iclick2].Text = "";
                    iclick2 = index;
                    btn.BackColor = Color.Empty;
                    btn.ForeColor = Color.Black;
                    btn.Text = "2";
                }
                  if (index == 8 || index == 13)
                {
                    if (iclick1 != 12)
                        return;
                    //将上一个选择的按钮状态变为空
                    if (iclick2 != -1)
                        btns[iclick2].Text = "";
                    iclick2 = index;
                    btn.BackColor = Color.Empty;
                    btn.ForeColor = Color.Black;
                    btn.Text = "2";
                }
                 if (index == 11 || index == 14)
                {
                    if (iclick1 != 15)
                        return;
                    //将上一个选择的按钮状态变为空
                    if (iclick2 != -1)
                        btns[iclick2].Text = "";
                    iclick2 = index;
                    btn.BackColor = Color.Empty;
                    btn.ForeColor = Color.Black;
                    btn.Text = "2";
                }
                
            }
            private void btns_MouseHover(object sender, EventArgs e)
            {
                Button btn = (Button)sender;
                int index = int.Parse(btn.Name);
                if (index == iclick1)
                    return;
                //4 个角可能按出1
                if (index == 0 || index == 3 || index == 12 || index == 15)
                {
                    btn.BackColor = Color.Gray;
                    btn.ForeColor = Color.White;
                    btn.Text = "1";
                }
                //4个角旁边可能按出2
                if (index == 1 || index == 4)
                {
                    if (iclick1 != 0)
                        return;
                    btn.BackColor = Color.Gray;
                    btn.ForeColor = Color.White;
                    btn.Text = "2";
                }
                if (index == 2 || index == 7)
                {
                    if (iclick1 != 3)
                        return;
                    btn.BackColor = Color.Gray;
                    btn.ForeColor = Color.White;
                    btn.Text = "2";
                }
                if (index == 8 || index == 13)
                {
                    if (iclick1 != 12)
                        return;
                    btn.BackColor = Color.Gray;
                    btn.ForeColor = Color.White;
                    btn.Text = "2";
                }
                if (index == 11 || index == 14)
                {
                    if (iclick1 != 15)
                        return;
                    btn.BackColor = Color.Gray;
                    btn.ForeColor = Color.White;
                    btn.Text = "2";
                }
            }
            private void btns_MouseLeave(object sender, EventArgs e)
            {
                Button btn = (Button)sender;
                int index = int.Parse(btn.Name);
                if (index == iclick1 || index == iclick2)
                    return;
                btn.BackColor = Color.Empty;
                btn.ForeColor = Color.Black;
                btn.Text = "";
            }
        }
    }





  • 相关阅读:
    (SenchaTouch+PhoneGap)开发笔记(2)开发环境搭建二
    Sql语句复习
    冒泡排序
    微信开发订阅号(ASP.NET MVC4+jquery mobile+AppHarbor发布)
    Ext4 ComboBox组件使用
    ExtJs 进度条(轮询)
    如何替换掉.net toolStrip控件溢出按钮背景图
    easyui-menu 宽度自适应
    Python之入门学习
    servlet和filter的区别
  • 原文地址:https://www.cnblogs.com/jsxyhelu/p/6910317.html
Copyright © 2011-2022 走看看