Member 9983063 Ответов: 3

Как изменить выбранный элемент списка цвет текста/Цвет фона при клике на кнопку в C# [дубликат]


Привет, Ребята! я столкнулся с проблемой в моем проекте C#, и эта проблема заключается в том, как изменить выбранный элемент списка forecolor/backcolor при нажатии кнопки в c#
Пожалуйста, помогите мне разобраться в этом вопросе
Спасибо

Что я уже пробовал:

тоже мне, событие drawitem,fontdialog ,цвет диалогового окна

3 Ответов

Рейтинг:
1

Karthik_Mahalingam

попробовать это

private void Form1_Load(object sender, EventArgs e)
       {
           listBox1.DrawMode = DrawMode.OwnerDrawFixed;
           listBox1.SelectionMode = SelectionMode.MultiExtended;
           listBox1.DrawItem += new DrawItemEventHandler(listBox_DrawItem);
           listBox1.Items.AddRange(new object[] { "A", "B", "C", "D" });
       }
       List<int> lstSelectedIndex = new List<int>();
       void listBox_DrawItem(object sender, DrawItemEventArgs e)
       {
           if (e.Index > -1)
           {
               e.DrawBackground();
               if (lstSelectedIndex.Any(k => k == e.Index))
                   e.Graphics.FillRectangle(Brushes.Green, e.Bounds);

               using (Brush textBrush = new SolidBrush(e.ForeColor))
               {
                   e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, textBrush, e.Bounds.Location);
               }
           }
       }

       private void button1_Click(object sender, EventArgs e)
       {
           lstSelectedIndex.Clear();
           lstSelectedIndex.AddRange(listBox1.SelectedIndices.OfType<int>());
           listBox1.Refresh();
       }


Рейтинг:
1

SRS(The Coder)

Вот мой реализовал то же самое с помощью jQuery с RegisterClientScriptBlock

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.10.2.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:listbox id="lstBox" runat="server" clientidmode="Static" xmlns:asp="#unknown">
            <asp:listitem text="test1" value="1" selected="True"></asp:listitem>
            <asp:listitem text="test2" value="2"></asp:listitem>
            <asp:listitem text="test3" value="3"></asp:listitem>
            <asp:listitem text="test4" value="4"></asp:listitem>
        </asp:listbox>
    </div>
        <asp:button id="btnText" runat="server" text="Button" onclick="btnText_Click" xmlns:asp="#unknown" />
    </form>
</body>
</html>


А на стороне сервера нажмите обработчик событий для кнопки, как показано ниже:-

protected void btnText_Click(object sender, EventArgs e)
        {
            String scriptName = "ButtonClickJSScript";
            Type pageType = this.GetType();

            ClientScriptManager cs = Page.ClientScript;

            if (!cs.IsClientScriptBlockRegistered(pageType, scriptName))
            {
                StringBuilder scriptText = new StringBuilder();
                scriptText.Append("<script type="\"text/javascript\""> $(function () {");
                scriptText.Append("$('#lstBox option:selected').css('background-color', 'red');");
                scriptText.Append("$('#lstBox option:selected').css('color', 'green');");
                scriptText.Append("});</script>");
                cs.RegisterClientScriptBlock(pageType, scriptName, scriptText.ToString());
            }
        }



Надеюсь, это вам поможет.