[ad_1]
大家好,
组合下拉列表中的最后一项可以用颜色突出显示吗?
需要突出显示组合框(或列表框,如果更容易的话……)中的最后一项
我尝试过的:
填写该框:
C#
for (int i = 0; i < 10; i++) { cboTest.Items.Add(i.ToString()); }
获取框中的最后一个项目
C#
cboTest.SelectedIndex = 9;
但这意味着你必须知道大小,所以如果它的变量可以你做
C#
while (!((ArrayComPortsNames[index] == ComPortName) || (index == ArrayComPortsNames.GetUpperBound(0))));
GetUpperBound(0) 会得到第一个项目吗?我不认为有 GetLowerBound(),比如 cboTest.GetLowerBound()?
解决方案1
您如何确定组合中有 10 件物品? 您应该使用 Count
的财产 Items
收藏。 这样您就可以拥有任意数量的条目,并且始终可以保证找到最后一个。 至于最后一张的颜色,请看一下ComboBoxRenderer 类 (System.Windows.Forms) | 微软学习[^]。
解决方案2
这取决于您如何解决这个问题,这取决于您所说的颜色的含义(我假设您在这里使用的是 Windows 窗体)。 如果你想改变前景色,你可以使用这样的东西
C#
private void comboBox1_DrawItem(object sender, DrawItemEventArgs e) { e.DrawBackground(); ComboBox combobox = sender as ComboBox; string text = combobox.Items[e.Index].ToString(); Brush brush; if (e.Index == combobox.Items.Length - 1) { brush = Brushes.Red; } else { brush = Brushes.Black; } e.Graphics.DrawString(text, combobox.Font, brush, e.Bounds.X, e.Bounds.Y); }
[ad_2]
コメント