TextBox:将文本包装到多行

时间:2015-12-30 17:34:34

标签: c# .net

我的表单中有一个TextBox,并尝试将内容包装成多行,以免被切断。

到目前为止,我做到了这一点,

var builder = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

if (env.IsEnvironment("Development"))
{
    // This reads the configuration keys from the secret store.
    // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets();
}

// this file name is ignored by gitignore in my project
// so you can create it and use on your local dev machine
// remember last config source added wins if it has the same settings
builder.AddJsonFile("appsettings.local.overrides.json", optional: true);

 // most common use of environment variables would be in azure hosting
// since it is added last anything in env vars would trump the same setting in previous config sources
 // so no risk of messing up settings if deploying a new version to azure
builder.AddEnvironmentVariables();
Configuration = builder.Build();

我尝试了上面的各种组合,将Multiline设为false,然后将WordWrap设为false。

但似乎没有任何效果。

我发现有一个TextWrapping属性,但由于某些原因,我的TextBox不可用,可能 因为.Net版本不同。

有没有办法将TextBox的内容包装成多行?

3 个答案:

答案 0 :(得分:4)

你的内容是什么?它是一个人类可读的"字符串(例如'普通'单词和句子),还是十六进制字符串等?

根据您的内容,您有多种选择:

  1. 在一定数量的字符后插入\n
  2. 根据您的框架(WPF,WinForms等)使用不同的属性/实现.....
    如果您使用的是WPF,请尝试AcceptReturn="true" TextWrapping="Wrap"
    如果您使用的是WinForms,请尝试在\n.Multiline := true
  3. 时插入一些.WordWrap := true个字符

    ADDENDUM:如果您想在每\n个字符后插入x,我会为您提供以下代码段(我非常喜欢):

    using System.Text.RegularExpressions;
    
    ...
    
    string mystr = "this is my very long text";
    
    mystr = Regex.Replace(mystr, "(.{20})", "$1\n");
    
    TextBox1.Text = mystr; // or: TextBox1.Content = mystr;
    

    正则表达式中的20"(。{20})"您的角色数量将被插入\n之后。 (意思是,你的字符串每20个字符后会有一个新行)

答案 1 :(得分:0)

<asp:TextBox ID="textBox1" runat="server" class="form-control input-sm m-bot15"  ForeColor="#800000" BackColor="#ffe1d2" Wrap="true" TextMode="MultiLine" Width="48px"                                                                           ></asp:TextBox>



         e.Row.Cells[i].Attributes.Add("style", "word-break:break-all;word-wrap:break-word;");

答案 2 :(得分:-3)

这很烦人,因为您希望自动换行实际包装文本。 我正在使用这种解决方法:使用“右页边距”属性设置句子的长度。然后它将自动换行。