在ListBox C#中跳过一行

时间:2012-10-12 11:44:21

标签: c# asp.net

我想用轮盘赌游戏填充ListBox,但我需要跳过不起作用的行

如果中奖号码与列表框不匹配,则必须打印如下

抱歉,没有中奖号码!

你松了!!!

如果中奖号码与投注号码匹配,则应如下所示:

获奖号码

投注:R#

投注类型:#

总奖金:R#

注意:#代表选择的数字

我尝试了两种方式" / n"和" system.Enviroment.NewLine"似乎没有任何作用

protected void btnSpin_Click(object sender, EventArgs e)
{
    Random random = new Random();
    intNumbRolled = random.Next(36);

    if (intNumb == intNumbRolled)
    {
        winning = intBet * type;
    }
    else
    {
        winning = 0;
    }

    if (winning == 0)
    {
        ListBox1.Items.Add
            ("Sorry there was no winning number \nYou loose!!");
    }
    else
    {
        ListBox1.Items.Add ("Winning number is " + intNumbRolled + 
            System.Environment.NewLine + System.Environment.NewLine + "BET: R " +
            intBet + System.Environment.NewLine + "Bet-Type: " + type +
            System.Environment.NewLine + "Total Winnings: R " + winning);
    }
}

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

列表框项目无法显示多行文字。你可能应该使用不同的控件。我会想到Label,或TextBox TextMode="multiline"

答案 1 :(得分:1)

我建议您使用repeater controltemplate column一起添加到此模板列TextArea控件

<asp:Repeater id="Repeater1" 
     DataSource="<% databindingexpression %>"
     runat=server>
   <ItemTemplate>
      <textarea rows="3" cols="30" id="IdTextArea" runat="server"/>  
   </ItemTemplate>
<asp:Repeater>

答案 2 :(得分:0)

从技术上讲,您可以在ListBox中显示空白行,但如果您的其他文字太长,则用户必须向侧面滚动,这通常很痛苦。我建议你改用Label

在.aspx页面中:

...
<asp:Label id="lblResult" runat="server" />
...

在你的.aspx.cs代码隐藏中:

if (winning==0)
{
    lblResult.Text = "Sorry there was no winning number<br />You loose!!";
}
else
{
    lblResult.Text =
        "Winning number is " + intNumbRolled + "<br /><br />" +
        "BET: R " + intBet + "<br />" +
        "Bet-Type: " + type + "<br />" +
        "Total Winnings: R " + winning;
}

请注意使用<br />代替\n,因为您的输出是HTML。使用这种方法,您还可以使用CSS格式化输出。