C# 字符串多行显示/文本换行以textbox为例讲解

 更新时间:2013年02月02日 14:29:59   作者:  
C# 字符串多行显示、文本换行以textbox为例讲为大家详细介绍并附演示效果图及演示代码,感兴趣的朋友可以了解下,或许对你学习字符串换行有所帮助

方法1:以textbox为例

①:先设置textbox的属性Multiline为true

②:组织好显示字符串:FistLine(第一行要显示的字符)、SecondLine(第二行要显示的字符)、。。。。。。。、第n行字符

③textbox.text="FistLine"+System.Environment.NewLine+"SecondLine"+System.Environment.NewLine+。。。。+"第N 行"+System.Environment.NewLine

当你看到上面代码的时候可能会认为我们一般用的换行符不是"\r\n"吗

你会想到这种方式:textbox.text="FistLine"+“\r\n”+"SecondLine"+"\r\n"+。。。。+"第N 行"+"\r\n"

这种格式可能在运行时也不会出错,但在Linux操作系统或其他系统可能就会出错

WinForm的 textbox截图效果

Textbox例子1用("\r\n"):具体代码:

复制代码 代码如下:

/// <summary>
/// 将结果填充到会员预定情况框
/// </summary>
/// <param name="dt"></param>
private void BindGuestOrder(DataTable dt)
{
int intRowsCount;
intRowsCount = dt.Rows.Count;
string[] strName = new string[intRowsCount];
string[] strPhone = new string[intRowsCount];
string[] strRoom = new string[intRowsCount];
string[] strNum = new string[intRowsCount];
string[] strTime = new string[intRowsCount];
for (int intRows = 0; intRows < intRowsCount; intRows++)
{
strName[intRows] = dt.Rows[intRows]["GuestName"].ToString();
strPhone[intRows] = dt.Rows[intRows]["LinkPhone"].ToString();
strRoom[intRows] = dt.Rows[intRows]["RoomName"].ToString();
strNum[intRows] = dt.Rows[intRows]["BookNo"].ToString();
strTime[intRows] = dt.Rows[intRows]["DineTime"].ToString();
AddMsgToTextBox("客人姓名:" + strName[intRows]);
AddMsgToTextBox("客人电话:" + strPhone[intRows]);
AddMsgToTextBox("预定房间:" + strRoom[intRows]);
AddMsgToTextBox("预约号:" + strNum[intRows]);
AddMsgToTextBox("预定时间:" + strTime[intRows]);
}
}



private int intCounts = 1;
/// <summary>
/// 显示多行文本
/// </summary>
/// <param name="s"></param>
public void AddMsgToTextBox(string s)
{
int intCount1;
intCount1 = intCounts / 5;
CheckTextBox(intCount1);
txtVIPAdvanceOrder.Text += "\r\n" + s;
if (intCounts % 5 == 0)
{
txtVIPAdvanceOrder.Text += "\r\n";
}
intCounts++;
}

/// <summary>
/// 设置换行
/// </summary>
protected void CheckTextBox(int intCount1)
{
int iLines = 5 * (intCount1 + 2); //想显示多少行。

string stxt = txtVIPAdvanceOrder.Text;
string[] s = stxt.Split('\n');
if (s.Length < iLines)
return;
txtVIPAdvanceOrder.Text = "";
for (int i = 1; i < s.Length; i++)
{
txtVIPAdvanceOrder.Text += s[i] + "\r\n";
}
stxt = txtVIPAdvanceOrder.Text;
if (stxt != "")
txtVIPAdvanceOrder.Text = stxt.Substring(0, stxt.Length - 1);
}



例子2:截图效果(dev 控件(Memoedit)):

源码:

复制代码 代码如下:

/// <summary>
/// 将结果填充到会员预定情况框
/// </summary>
/// <param name="dt">预定会员的信息表</param>
private void BindGuestOrder(DataTable vardt)
{
memGusetInfo.Text = "";
int tmpRowsCount;
tmpRowsCount = vardt.Rows.Count;
string[] tmpstrName = new string[tmpRowsCount];
string[] tmpstrPhone = new string[tmpRowsCount];
string[] tmpstrRoom = new string[tmpRowsCount];
string[] tmpstrNum = new string[tmpRowsCount];
string[] tmpstrTime = new string[tmpRowsCount];
for (int i = 0; i < tmpRowsCount; i++)
{
tmpstrName[i] = vardt.Rows[i]["GuestName"].ToString();
tmpstrPhone[i] = vardt.Rows[i]["LinkPhone"].ToString();
tmpstrRoom[i] = vardt.Rows[i]["RoomName"].ToString();
tmpstrNum[i] = vardt.Rows[i]["BookNo"].ToString();
tmpstrTime[i] = vardt.Rows[i]["DineTime"].ToString();
string tmpstr1 = "客人姓名:" + tmpstrName[i] + System.Environment.NewLine;
string tmpstr2 = "客人电话:" + tmpstrPhone[i] + System.Environment.NewLine;
string tmpstr3 = "预定房间:" + tmpstrRoom[i] + System.Environment.NewLine;
string tmpstr4 = "预约号:" + tmpstrNum[i] + System.Environment.NewLine;
string tmpstr5 = "预约时间:" + tmpstrTime[i] + System.Environment.NewLine;
memGusetInfo.Text += string.Format("{0}{1}{2}{3}{4}", tmpstr1, tmpstr2, tmpstr3, tmpstr4, tmpstr5) + System.Environment.NewLine;
}
}

现在DEV控件比较多人用:所以弄了一个DEV的例子,DEV有专门的文本框控件(Memoedit)其实原理都一样,效果也差不多

相关文章

  • C# TextBox控件实现只能输入数字的方法

    C# TextBox控件实现只能输入数字的方法

    这篇文章主要介绍了C# TextBox控件实现只能输入数字的方法,本文使用TextBox的keypress事件实现这个需求,需要的朋友可以参考下
    2015-06-06
  • c#版json数据解析示例分享

    c#版json数据解析示例分享

    JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成
    2014-03-03
  • WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析

    WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析

    这篇文章主要介绍了WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析,对C#初学者来说很有学习借鉴价值,需要的朋友可以参考下
    2014-08-08
  • C#多线程编程详解

    C#多线程编程详解

    C#提供了丰富的多线程操作,为编程带来了极大的便利,但如果使用不当也会带来各种各样的麻烦。本篇文章主要介绍了C#多线程,有需要的可以了解一下。
    2016-11-11
  • 基于WPF实现面包屑控件的示例代码

    基于WPF实现面包屑控件的示例代码

    这篇文章主要为大家详细介绍了如何基于WPF实现简单的面包屑控件,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2023-05-05
  • C# 7.0 新特性1之基于Tuple的“多”返回值方法

    C# 7.0 新特性1之基于Tuple的“多”返回值方法

    这篇文章主要为大家详细介绍了C# 7.0 新特性1之基于Tuple的“多”返回值方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • WPF仿微信实现截图功能的方法详解

    WPF仿微信实现截图功能的方法详解

    这篇文章主要介绍了如何利用WPF实现截图功能(仿微信),文中的示例代码讲解详细,对我们学习或工作有一定帮助,需要的可以参考一下
    2022-07-07
  • 利用C#实现进程管理器

    利用C#实现进程管理器

    这篇文章主要为大家详细介绍了如何利用C#实现自己的进程管理器,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • vs2019安装和使用详细图文教程

    vs2019安装和使用详细图文教程

    这篇文章主要介绍了vs2019安装和使用详细图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • C# Word 类库的深入理解

    C# Word 类库的深入理解

    本篇文章是对C#中的Word类库进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论