c#图片跑马灯_c#跑马灯 - CSDN
  • x年没写.net的程序了,工作需要写个跑马灯程序,也当找找感觉吧。 天下文章一大抄,这个代码也是从网上的一个原型修改而来的...以后我可能要接触比较多的.net下的应用,大家多交流... 【运行效果】从右至左跑动 ...

    x年没写.net的程序了,工作需要写个跑马灯程序,也当找找感觉吧。

    天下文章一大抄,这个代码也是从网上的一个原型修改而来的...以后我可能要接触比较多的.net下的应用,大家多交流...

    【运行效果】从右至左跑动


    【资源列表】背景是一个空白图片


    【实现原理】

    创建一个picturebox,然后在其grapics循环(位移)绘制imgage和string。

    与主窗口为同一线程,CPU占用率可接受;对于屏幕抖动没有做太多处理,对于我当前的产品已经够用了。

    【源代码】

    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            #region 全局变量
            System.Windows.Forms.PictureBox m_pbPicRoll; // 界面容器
            List<Image> m_lsImages = new List<Image>();
            List<string> m_lsImageNames = new List<string>();
            Graphics m_ghContainer;
            Image m_imgBackground;
            Rectangle m_rcShowRegion;


            int m_nCurImgIndex = 0; // 当前显示的图片
            int m_nImgHeight;       // 图片呈现的高度
            int m_nImgWidth;        // 图片呈现的宽度
            int m_nScrollDelta;     // 图片滚动边距
            int m_nScrollPicNums;   // 屏幕呈现的图片数
            int m_nTitleRegionHeight;// 文字区高度
            Font m_ftPicTileFont;
            SolidBrush m_bhPicTitleBrush;
            StringFormat m_sfTitleFormat;

            Timer tm_Roll = new Timer(); 
            #endregion 全局变量

            public Form1()
            {
                InitializeComponent();
                this.form_layout();
           
            }
            private void form_layout()
            {
                this.DoubleBuffered = true;
                this.StartPosition = FormStartPosition.CenterScreen;
                this.Size = new Size(800, 800);
                this.BackColor = Color.LightBlue;


                m_pbPicRoll = new PictureBox();
                m_pbPicRoll.Location = new Point(50, 50);
                m_pbPicRoll.Size = new Size(600, 300);
                this.Controls.Add(m_pbPicRoll);
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                this.init_img_roll();
            }

            public static string get_filename(String path)  
            {  
                if (path.Contains("\\"))  
                {  
                    string[] arr = path.Split('\\');  
                    return arr[arr.Length - 1];  
                }  
                else 
                {  
                    string[] arr = path.Split('/');  
                    return arr[arr.Length - 1];  
                }  
            }  

            private void init_img_roll()
            {
                m_imgBackground = Image.FromFile(string.Format("{0}/Images/bg.png", Application.StartupPath));
                string[] strImgFiles = Directory.GetFiles(string.Format("{0}/Images", Application.StartupPath), "*.jpg");
                string strImgFormat = ".jpg";
                char[] szTemp = strImgFormat.ToCharArray();
                string strFileName;
                foreach (string str_path in strImgFiles)
                {
                    m_lsImages.Add(Image.FromFile(str_path));
                    strFileName = get_filename(str_path).TrimEnd(szTemp);
                    m_lsImageNames.Add(strFileName);
                }
                m_ghContainer = m_pbPicRoll.CreateGraphics();

                m_nImgHeight = 200;
                m_nImgWidth = 200;
                m_nScrollPicNums = m_pbPicRoll.Width / m_nImgWidth + 1; // 每次滚的图片个数

                m_nTitleRegionHeight = 30;
                m_ftPicTileFont = new Font("Arial", 14);
                m_bhPicTitleBrush = new SolidBrush(Color.Black);     
                m_sfTitleFormat = new StringFormat();
                m_sfTitleFormat.Alignment = StringAlignment.Center;

                m_rcShowRegion = new Rectangle(new Point(0, 0), new Size(m_pbPicRoll.Width, m_nImgHeight + m_nTitleRegionHeight));

                tm_Roll.Interval = 150; 
                tm_Roll.Tick += new EventHandler(timer_roll_tick);
                tm_Roll.Start();
            }

            private void timer_roll_tick(object sender, EventArgs e)
            {
                if (Math.Abs(m_nScrollDelta) >= m_nImgHeight) // 图片顶端滚出picturebox
                {
                    m_nCurImgIndex = (++m_nCurImgIndex) % m_lsImages.Count;
                    m_nScrollDelta = 0;
                }
              
                Bitmap btPrestScope = new Bitmap(m_pbPicRoll.Width, m_nImgHeight + m_nTitleRegionHeight);         
                Graphics ghPrestScope = Graphics.FromImage(btPrestScope);

                // 仅刷新文字区背景,以解决文字覆盖问题
                ghPrestScope.DrawImage(m_imgBackground,m_rcShowRegion);

                for (int i = 0; i < m_nScrollPicNums; i++ )
                {           
                    ghPrestScope.DrawImage(m_lsImages[(m_nCurImgIndex + i) % m_lsImages.Count],
                        new Rectangle(new Point(m_nScrollDelta + i * m_nImgWidth, 0), 
                            new Size(m_nImgWidth - 10, m_nImgHeight - 10))); // 10为了图片与周围拉开距离
                    ghPrestScope.DrawString(m_lsImageNames[(m_nCurImgIndex + i) % m_lsImageNames.Count],
                        m_ftPicTileFont, 
                        m_bhPicTitleBrush, 
                        new Point(m_nScrollDelta + (int)((i+0.5) * m_nImgWidth), 200 + 2), // 0.5为了居中,2为了垂直拉开点距离
                        m_sfTitleFormat);            
                }
                m_ghContainer.DrawImage(btPrestScope,m_rcShowRegion);
                ghPrestScope.Dispose();
                btPrestScope.Dispose();

                m_nScrollDelta -= 2; // 每次滚动2个像素
            }     
        }
    }



    增加鼠标点击图片操作

            private void onmouseclick_picroll(object sender, MouseEventArgs e)
            {                
                int nReminder = 0, nQuotient = 0, nClickedImgIndex = 0;
                nQuotient = Math.DivRem(e.X - m_nScrollDelta, m_nImgWidth,out nReminder); // m_nScrollDelta在本例中必为负数
                nClickedImgIndex = (m_nCurImgIndex + nQuotient) % m_lsImages.Count;
    
                System.Console.WriteLine(string.Format("x:{0}, y:{1}, scroll:{2},regionindex is {3}, offset is {4}", 
                    e.X, e.Y, m_nScrollDelta, nQuotient, nReminder));
    
                if (nClickedImgIndex < m_lsImageNames.Count)
                {
                    System.Console.WriteLine(m_lsImageNames[nClickedImgIndex]);
                    MessageBox.Show(string.Format("您现在点击的特色农业是:{0}",m_lsImageNames[nClickedImgIndex]),"test");
                }
                else
                {
                    System.Console.WriteLine(string.Format("out of index:{0}, we must have a global exception handler.",
                        nClickedImgIndex));
    
                }
            }


    转载请注明出处:http://blog.csdn.net/shineych/article/details/8099707


    展开全文
  • C#实现跑马灯效果

    2011-10-31 08:59:47
    namespace test { class Test6 { static void Main(string[] args) { string str = "welcome to xfht"; //获取字符串str的长度 int length = str.Leng
     
    namespace test
    {
        class Test6
        {
            static void Main(string[] args)
            {
                string str = "welcome to xfht";
                //获取字符串str的长度
                int length = str.Length;
                //获取控制台窗口的宽度
                int width=Console.WindowWidth;
                //在字符串前添加width-length个空格
                for (int i = 1; i <= width - length; i++)
                {
                    str = " " + str;
                }
    
                int index = 0;
                while (true)
                {
                    Console.Clear();//清除控制台中显示的信息(清屏)
                    //截取字符串
                    string temp = str.Substring(index);
                    Console.Write(temp);
                    index++;
                    System.Threading.Thread.Sleep(100);
                    if (index > width)
                    {
                        index = 0;
                    }
                }
            }
        }
    }

    展开全文
  • 下面附下载地址。...1、跑马灯效果,图片连续循环滚动,图片下面并可附文字描述,图片是从数据库中获取的,亲自测试,保证好使。 Default.aspx 代码: <html> <head> <meta http-equiv=...

      下面附下载地址。 http://download.csdn.net/download/njxiaogui/10002058

    1、跑马灯效果,图片连续循环滚动,图片下面并可附文字描述,图片是从数据库中获取的 ,亲自测试,保证好使。

    Default.aspx  代码:

    <html>
        <head>
            <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
            <title>jQuery&#26032;&#38395;&#28378;&#21160;&#36305;&#39532;&#28783;&#25928;&#26524; - &#31449;&#38271;&#32032;&#26448;</title>
            <script type="text/javascript" src="js/jquery-1.8.0.js"></script>
            <script src="js/jquery.carouFredSel-6.0.4-packed.js" type="text/javascript"></script>
               <script>
                $(function () {
                    var _scroll = {
                        delay: 1000,
                        easing: 'linear',
                        items: 1,
                        duration: 0.07,
                        timeoutDuration: 0,
                        pauseOnHover: 'immediate'
                    };
                    $('#ticker-1').carouFredSel({
                        width: 1000,
                        align: false,
                        items: {
                            width: 'variable',
                          
                            visible: 1
                        },
                        scroll: _scroll
                    });
    
                    $('#ticker-2').carouFredSel({
                        width: 1000,
                        align: false,
                        circular: false,
                        items: {
                            width: 'variable',
                            height: 35,
                            visible: 2
                        },
                        scroll: _scroll
                    });
    
                    //    set carousels to be 100% wide
                    $('.caroufredsel_wrapper').css('width', '100%');
    
                    //    set a large width on the last DD so the ticker won't show the first item at the end
                    $('#ticker-2 dd:last').width(2000);
                });
            </script>
            <style type="text/css">
                html, body {
                    height: 100%;
                    padding: 0;
                    margin: 0;
                }
                body {
                    min-height: 300px;
                }
                body * {
                    font-family: Arial, Geneva, SunSans-Regular, sans-serif;
                    font-size: 14px;
                    color: #333;
                    line-height: 22px;
                }
    
                #wrapper {
                    width: 100%;
                    margin: -100px 0 0 0;
                    position: absolute;
                    left: 0;
                    top: 50%;
                }
                #wrapper h3 {
                    font-size: 20px;
                    text-align: center;
                }
                
            
                #wrapper > div.first {
                    border-bottom: none;
                }
                
                #wrapper dl {
                    display: block;
                    margin: 0;
                }
                #wrapper dt, #wrapper dd {
                    display: block;
                    float: left;
                    margin: 0 5px;/*--空间距--*/
                    padding: 0px 0px;/*--空间距--*/
                }
                #wrapper dt {
                    background-color: #f66;
                    color: #fff;
                }
                #wrapper dd {
                    color: #333;
                    margin-right: 0px;/*--空间距--*/
                }
    
                code {
                    font-style: italic;
                }
                
                #donate-spacer {
                    height: 100%;
                }
                #donate {
                    border-top: 1px solid #999;
                    width: 750px;
                    padding: 50px 75px;
                    margin: 0 auto;
                    overflow: hidden;
                }
                #donate p, #donate form {
                    margin: 0;
                    float: left;
                }
                #donate p {
                    width: 550px;
                }
                #donate form {
                    width: 100px;
                }
    
            </style>
        </head>
        <body>
         
            <div id="wrapper">
                
                <div class="first">
                
                    <dl id="ticker-1">
                        
                    <asp:Literal ID="Literal2" runat="server"></asp:Literal>   
                        
                    </dl>
                   
                </div>
                
            </div>
             
            
        </body>
    </html>

    Default.aspx.cs代码:

    if (!IsPostBack)
            {
                DataSet ds_lb = jlbll.GetList(" bz3  is  not null");
                if (ds_lb.Tables[0].Rows.Count > 0)
                {
                    for (int i = 0; i < ds_lb.Tables[0].Rows.Count; i++)
                    {
                        Literal2.Text += "<dd><li>  <a href='Journalism_Read.aspx?id=" + ds_lb.Tables[0].Rows[i]["bz3"].ToString() + "' title='" + ds_lb.Tables[0].Rows[i]["username"].ToString() + "' target='_blank'>";
                        Literal2.Text += "   <img src='images/" + ds_lb.Tables[0].Rows[i]["bz3"].ToString() + "' width='200' height='200'></a><span style='display:block;text-align:center;' >fdffff</span>";
                        Literal2.Text += "</li></dd>";
                    }
                }
            }

    跑马灯效果图:

     

    2 、图片滑动效果,显示一个图片后在自动显示另一个图片,轮询播放图片

    Default2.aspx代码:

    <html>
    <head>
        <meta charset="utf-8">
    
        <title>大庆环保局</title>
    
        <script type="text/javascript" src="js/jquery-1.8.0.js"></script>
    
        <%--左右轮播 新闻--%>
    
    
        <%--从右到左轮播 图片4个和一个图片的轮播--%>
        <script src="js/jquery.bxslider.js"></script>
    
        <%--紧急通知--%>
    
        <script>
    
            jQuery(function ($) {
    
                $('#lb2').bxSlider({
                    slideWidth: 250,
                    controls: false,
                    auto: true,
                    pager: false,
                    autoControls: false,
                    moveSlides: 1,
                    minSlides: 1,
                    maxSlides: 1,
                    slideMargin: 0
                });
    
    
            });
    
        </script>
    
    </head>
    <body>
        <form id="form1" runat="server">
    
    
            <div id="lb2">
                <a href="#" title="这里是测试标题一">
                    <img src="images/07_01_hbjc.png"></a>
                <a href="#" title="这里是测试标题二">
                    <img src="images/07_02_ssjygk.png"></a>
                <a href="http://www.dqdaily.com/ztxw/2014/node_38660.htm" title="唱响幸福谣 践行核心价值观">
                    <img src="images/07_03_wryhjjgxxgk.png"></a>
            </div>
    
    
    
        </form>
    
    
    
    </body>
    </html>

     

    图片滑动效果图:

     

     

    3、图片滑动效果,显示一个图片后在自动显示另一个图片,轮询播放图片,图片并附文字,从数据库中动态加载图片,并可任意切换显示的图片:

    Default4.aspx

    <html>
    <head>
        <meta charset="utf-8">
        <title>大庆环保局</title>
        <script type="text/javascript" src="js/jquery-1.8.0.js"></script>
        <link href="js/jquery.slideBox.css" rel="stylesheet" type="text/css" />
        <script src="js/jquery.slideBox.js" type="text/javascript"></script>
        <%--左右轮播 新闻--%>
        <%--从右到左轮播 图片4个和一个图片的轮播--%>
        <script src="js/jquery.bxslider.js"></script>
        <%--紧急通知--%>
        <script>
    
            jQuery(function ($) {
    
                $('#lb1').slideBox({
                    duration: 0.3, //滚动持续时间,单位:秒
                    easing: 'swing', //swing,linear//滚动特效
                    delay: 5, //滚动延迟时间,单位:秒
                    hideClickBar: false, //不自动隐藏点选按键
                    clickBarRadius: 10
                });
    
    
            });
    
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="lb1" class="slideBox">
            <ul class="items">
                <asp:Literal ID="Literal2" runat="server"></asp:Literal>
            </ul>
        </div>
        </form>
    </body>
    </html>

    Default4.aspx.cs 代码:

    if (!IsPostBack)
            {
                DataSet ds_lb = jlbll.GetList(" bz3  is  not null");
                if (ds_lb.Tables[0].Rows.Count > 0)
                {
                    for (int i = 0; i < ds_lb.Tables[0].Rows.Count; i++)
                    {
                        Literal2.Text += "<li><a href='Journalism_Read.aspx?id=" + ds_lb.Tables[0].Rows[i]["bz3"].ToString() + "' title='" + ds_lb.Tables[0].Rows[i]["username"].ToString() + "' target='_blank'>";
                        Literal2.Text += "  <img src='images/" + ds_lb.Tables[0].Rows[i]["bz3"].ToString() + "' width='380' height='292'></a>";
                        Literal2.Text += "</li>";
                    }
                }
            }

    图片滑动+任意切换图片效果图:

    转载于:https://www.cnblogs.com/smile-wei/p/7611466.html

    展开全文
  • 实现跑马灯,鼠标滑动效果,代码里面一共三种效果,图片都是动态从数据库中加载的。
  • C#实现跑马灯效果 .

    2011-11-02 09:47:01
    namespace test { class Test6 { static void Main(string[] args) { string str = "welcome to xfht"; //获取字符串str的长度 int length = str.Len
     
    
    1. namespace test  
    2. {  
    3.     class Test6  
    4.     {  
    5.         static void Main(string[] args)  
    6.         {  
    7.             string str = "welcome to xfht";  
    8.             //获取字符串str的长度   
    9.             int length = str.Length;  
    10.             //获取控制台窗口的宽度   
    11.             int width=Console.WindowWidth;  
    12.             //在字符串前添加width-length个空格   
    13.             for (int i = 1; i <= width - length; i++)  
    14.             {  
    15.                 str = " " + str;  
    16.             }  
    17.   
    18.             int index = 0;  
    19.             while (true)  
    20.             {  
    21.                 Console.Clear();//清除控制台中显示的信息(清屏)   
    22.                 //截取字符串   
    23.                 string temp = str.Substring(index);  
    24.                 Console.Write(temp);  
    25.                 index++;  
    26.                 System.Threading.Thread.Sleep(100);  
    27.                 if (index > width)  
    28.                 {  
    29.                     index = 0;  
    30.                 }  
    31.             }  
    32.         }  
    33.     }  
    34. }  
    展开全文
  • 本示例是一个跑马灯动画,执行效果是图片向上无缝无限循环滚动,所有图片都是后台添加。另:本示例包含了线程,计时器,循环添加控件时怎么给所有控件注册对应的事件的问题以及那么一丢丢的委托,还有就是跨线程的...
  • 用WinForm制作跑马灯

    2013-12-31 06:10:48
    public Form1() { InitializeComponent(); } string su = string.Empty; //计时器触发事件 private void timer1_Tick(object sender, EventArgs e) { su = this.label1.Text;...
  • ScrollingTextControl
  • 实现正常图片的查看的各种功能、具有幻灯片播放的功能、还有一些动态效果的播放功能、可以正常运行
  • 一个是控制好线程sleep时间,sleep时做图片的变换,变换指的就是用滚动的图片依次替换下一个图片。 再一个就是图片的定位,这个根据当前图片位置就可以精确计算了. 我还添加了SoundPool 让每次变动都有一个声音,...
  • 垂直文字切换&跑马灯,在切换中字体颜色以及布局样式更改。
  • jquery实现大小图左右滑动切换跑马灯效果,鼠标滑倒图片上实现大小图切换
  • UGUI 实现跑马灯效果

    2018-10-08 14:21:01
    using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;.../// 跑马灯文字设置 /// &amp;amp;amp;amp;amp;amp;lt;/su
  • C#跑马灯抽签小程序

    2018-06-24 17:49:49
    最近受朋友所托,需要做一个抽签的程序,可以抽取自己想抽取的项
  • 利用Unity制作跑马灯

    2018-09-18 15:47:17
    在Unity中建立6个cube,把标签改成Cube 再建立一个空物体,把此脚本挂入其中 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; ...public class ChangeColorByTime : ...
  • 一 GridView的使用  gridView和ListView一样都是一种列表显示的视图控件,ListView是竖直列表的形式来展现,常常用于新闻条目这种.而gridView是可以按照多少列来横向列表的形式来展现的.两者的使用十分相似. ...
  • 在程序的构造函数中写 {  Timer HelpTime = new Timer();//实例化一个时间控件  HelpTime.Enabled = true;//让时间控件可用  HelpTime.Int
1 2 3 4 5 ... 15
收藏数 288
精华内容 115
关键字:

c#图片跑马灯