`
csstome
  • 浏览: 1521953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

c#中WinForm的TextBox循环自动滚动示例

阅读更多

这个问题来自论坛提问,演示代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication27
... {
/**/ /// <summary>
/// 演示如何在TextBox中让文字循环滚动:
/// 作者jinjazz
/// 作者blog: http://blog.csdn.net/jinjazz
/// </summary>

public partial class Form1:Form
... {
public Form1()
... {
InitializeComponent();

this .textBox1.Clear();
for ( int i = 0 ;i <= 20 ;i ++ )
... {
this .textBox1.Text += string .Format( " {0}:jinjazz__{1} " ,i,i);
}

this .timer1.Interval = 200 ;
this .timer1.Start();
}


// 发送消息
[DllImport( " user32.dll " ,EntryPoint = " SendMessage " )]
public static extern int SendMessage(IntPtrhWnd, int wMsg, int wParam, int lParam);
// 获取滚动条位置
[DllImport( " user32 " )]
public static extern int GetScrollPos(IntPtrhwnd, int nBar);
// 设置滚动条位置
[DllImport( " user32.dll " )]
static extern int SetScrollPos(IntPtrhWnd, int nBar,
int nPos, bool bRedraw);

public const int EM_LINESCROLL = 0xb6 ;

private void timer1_Tick( object sender,EventArgse)
... {
int i = GetScrollPos( this .textBox1.Handle, 1 );

// 向下滚动一行
SendMessage( this .textBox1.Handle,EM_LINESCROLL, 0 , 1 ); // 0,1代表垂直滚动条向下滚动

// 判断是否有位置变化,如果没有则说明到了底部,返回开始处
if (i == GetScrollPos( this .textBox1.Handle, 1 ))
... {
// 回到顶部,这里用SetScrollPos似乎有问题,滚动条和文字不是同步更新
this .textBox1.SelectionStart = 0 ;
this .textBox1.SelectionLength = 1 ;
this .textBox1.ScrollToCaret();
this .textBox1.SelectionLength = 0 ;
}

Console.WriteLine(i);
}


private void textBox1_MouseEnter( object sender,EventArgse)
... {
this .timer1.Stop();
}


private void textBox1_MouseLeave( object sender,EventArgse)
... {
this .timer1.Start();
}

}

}
分享到:
评论

相关推荐

    C#重写Winform的Textbox单行模式下滚动条。

    请注意,这只是一个基础示例,实际应用中可能需要根据项目需求调整代码,例如处理文本的自动换行、滚动条的可见性判断等。 在压缩包中的`WindowsFormsApplication1.sln`是Visual Studio的解决方案文件,而`Windows...

    Winform TextBox支持垂直居中自定义控件

    在Windows Forms开发中,TextBox控件是最常用的输入控件之一,用于显示和接收文本输入。然而,系统默认的TextBox控件并不支持文字的垂直居中显示。为了满足这个需求,我们可以自定义一个控件,继承自TextBox类,并...

    winform下TextBox自动提示功能

    在Windows Forms(WinForm)开发中,TextBox控件是最常用的一种元素,用于接收用户的文本输入。为了提升用户体验,我们常常需要实现一个自动提示(Auto-Suggest或Auto-Complete)的功能,当用户在TextBox中输入文字...

    教你如何把Winform TextBox 垂直居中的类文件

    在Windows Forms(Winform)开发中,TextBox控件是最常用的一种输入控件,通常用于接收用户的文本输入。然而,有时我们需要让TextBox在容器内垂直居中显示,这可能需要一些额外的布局设置或自定义代码。这篇教程将...

    C# WinForm控件TextBox扩展显示为一条线

    在C# WinForm开发中,有时我们可能需要创建具有特殊视觉效果的控件,比如将一个TextBox控件显示为仅有一条线的简洁样式。这样的设计可以使得界面更加清爽,减少不必要的视觉干扰。标题“C# WinForm控件TextBox扩展...

    C#winform控件textbox按键输入控制.rar

    通过以上示例,我们可以看出,C# WinForm中的TextBox控件提供了一套灵活的机制,允许开发者根据需求对用户输入进行细致的控制。理解并熟练运用这些技巧,能够提升应用程序的用户体验和功能完善性。在实际开发中,应...

    C#代码高亮的WinForm的TEXTBOX控件

    "C#代码高亮的WinForm的TEXTBOX控件"这个主题,主要涉及如何在WinForms应用中创建一个能够对输入的C#代码进行语法高亮的TextBox替代品。这通常通过自定义控件或者使用第三方库来实现。 首先,我们可以利用IC#Code....

    C# WinForm TextBox猜想输入和历史记录输入(源码)

    在C# WinForm开发中,TextBox控件是用于用户输入文本的基本组件。为了提升用户体验,开发者经常需要实现一些高级功能,比如猜想输入和历史记录输入。这两种功能在很多应用程序中都十分常见,例如搜索引擎、自动补全...

    C# winform textbox弹出窗体

    在C# WinForm应用开发中,`TextBox`控件是常用的数据输入组件,它允许用户在界面中输入和编辑文本。然而,在某些情况下,我们可能需要在`TextBox`上实现一个弹出窗体,比如显示更多信息、提示或者确认操作。在实现...

    winform里textBox无法获得焦点的解决方案

    在Windows Forms(WinForm)应用程序开发中,遇到控件如textBox无法正常获取焦点的问题时,开发者需要采取一些策略来确保用户交互的顺畅进行。本文将详细介绍如何解决WinForm中的textBox无法获得焦点的问题,并探讨...

    c#textbox输入框自动提示、自动完成、自动补全功能

    在C#编程中,TextBox控件是用于接收用户文本输入的标准组件。为了提供更好的用户体验,开发者经常需要为TextBox添加自动提示、自动完成和自动补全的功能。这些特性可以帮助用户更快地输入信息,尤其是在处理长文本...

    c# winform textbox控件只能输入数字的几种方法

    在C# WinForms开发中,有时我们需要限制TextBox控件只接受数字输入,这对于处理数值数据的应用程序来说尤为重要。本文将详细介绍几种实现这一功能的方法,并深入分析每种方法的工作原理及适用场景。 ### 方法一:...

    winform 滚动条示例

    本示例将深入探讨如何在C# Winform应用中实现和使用滚动条,以便用户可以更轻松地控制视图。滚动条分为水平滚动条(Horizontal Scroll Bar, HScrollBar)和垂直滚动条(Vertical Scroll Bar, VScrollBar),它们都...

    winform下TextBox只显示一条直线自定义控件源码

    在标题“winform下TextBox只显示一条直线自定义控件源码”中,提到的是一个特殊的TextBox控件,它仅显示一条直线,而非常规的矩形边框。这通常是为了追求更简洁、现代的UI设计。以下将详细解析这个自定义控件的设计...

    c#winform开发框架

    首先,WinForm框架的核心是Windows Forms类库,它包含了一系列预定义的控件,如按钮(Button)、文本框(TextBox)、标签(Label)、列表视图(ListView)等,这些控件可以直接拖放到设计视图中,极大地简化了UI设计过程。...

    C# TEXTBOX屏蔽右击弹出系统菜单

    在C#编程中,TextBox控件是用于用户输入文本的常用元素。然而,在某些情况下,开发者可能希望禁用TextBox的默认行为,比如防止用户通过右键点击触发系统菜单。标题"\"C# TEXTBOX屏蔽右击弹出系统菜单\"\"正是针对这...

    C#写winform调用webservice例子(经典)

    在本文中,我们将深入探讨如何使用C#语言在Windows Forms(WinForm)应用程序中调用Web服务,以实现一个经典的示例:获取互联网上的天气预报信息。这个例子适合于使用Visual Studio 2005或2008开发环境。 首先,让...

    C# winform自定义滚动条

    在C# WinForm应用开发中,有时候为了满足特定的界面设计需求,我们可能需要自定义滚动条(ScrollBar)控件。本主题将深入探讨如何在C#中实现自定义滚动条,包括滚动条的外观、行为以及交互效果的定制。 一、自定义...

    C# winform记住密码及自动登陆源码

    在C# WinForm应用开发中,实现“记住密码”和“自动登录”的功能是一项常见的需求。这个源码示例提供了一种实现方式,其设计灵感来源于QQ客户端的用户登录界面,旨在帮助开发者学习如何在自己的应用程序中集成这些...

    C# 几个textbox 里的值相加 赋值到 textbox

    在C#编程中,开发Windows桌面应用程序时,我们经常需要处理用户输入的数据,例如通过TextBox控件获取用户的数字输入,并进行一些计算操作。本话题主要关注如何实现多个TextBox中的数值相加,然后将结果实时显示在另...

Global site tag (gtag.js) - Google Analytics