将一个长字符串换行到datagridview列中的多行

时间:2012-05-07 21:19:50

标签: c# .net winforms data-binding datagridview

我在数据库(MS SQL)表中有一个非常长的字符串,例如

'99024','99050','99070','99143','99173','99191','99201','99202','99203','99204','99211','99212','99213','99214','99215','99217','99218','99219','99221','99222','99231','99232','99238','99239','99356','99357','99371','99374','99381','99382','99383','99384','99385','99386','99391','99392'

现在它显示在windows窗体应用程序的datagridview中。 image 1

我的预期可能是(忽略头文,无所谓)。 image 2

这意味着将长字符串拆分为多个短字符串。每个字符串占一行。 最初它在asp.net gridview中通过以下代码完成:

<ItemTemplate>
    <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
         <asp:TextBox ID="TextBox1" runat="server" Wrap="true" TextMode="MultiLine" Text='<%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>'
          Rows='<%# Eval("test").ToString().Split(new string[] { "," }, StringSplitOptions.None).Length %>'
             </asp:TextBox>
            </div>
            </ItemTemplate>
 <EditItemTemplate>
        <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
              <asp:TextBox ID="TextBox2" runat="server" Wrap="true" TextMode="MultiLine" Text='<%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>
   '>
                       </asp:TextBox>
                            </div>
                        </EditItemTemplate>

现在我想在Windows窗体中使用它DataGridView,我不知道如何编辑列来自定义项目。但我只是觉得它们可能很相似。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在Windows应用程序中,首先需要做的是更改DataGridView RowStyle,以便根据您的内容自动调整大小

dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.Fill;
dataGridView1.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True;

然后用换行符替换逗号

Eval("test").ToString().Replace(",", System.Environment.NewLine);