小编Kyl*_*ney的帖子

DataSource更改时,ComboBox不会自动更新?

出于某种原因,当从DataSource(一个简单的BindingList)添加或删除项时,ComboBox会相应地更新,但如果我编辑这样的项,则它不会自动更新:

myBindingList[index].Name = "NewName";
myBindingList[index].Value = newValue;
Run Code Online (Sandbox Code Playgroud)

为了在编辑项目时更新它而不是创建或删除项目,我必须在更改后执行此操作:

myComboBox.DataSource = null;
myComboBox.DataSource = myBindingList;
Run Code Online (Sandbox Code Playgroud)

这解决了问题,但它似乎是一个相当混乱的解决方案.对于大型列表,它可能会变慢(我知道的过早优化),但仍然有办法强制ComboBox更新而不完全重新分配其DataSource?

谢谢阅读.

c# data-binding combobox datasource winforms

8
推荐指数
1
解决办法
2万
查看次数

每次创建相同颜色对应数组的算法?

对于我的程序,我试图创建一个函数,它将生成一个颜色数组(每次应该是相同的,所以没有随机性),其中每种颜色与其他颜色有很大不同.

你为什么要问?好吧,因为用户可以向用户控件添加自定义项目,并且通过添加每个项目,项目应该与特定颜色相关联.

显然这会很糟糕:

Red
Dark Red
Light Red
Pink
Run Code Online (Sandbox Code Playgroud)

因为在视觉上所有这些在色彩和颜色上非常相似,并且用户将无法区分它们.理想情况下,函数会产生如下所示:

Red
Dark Green
Light Cyan
Orange
Run Code Online (Sandbox Code Playgroud)

在这种情况下,每种颜色与其他颜色大不相同,并且用户可以容易地在视觉上区分它们.

但是,我在提出一个执行此操作的算法时遇到了一些麻烦.我知道我想使用Color.FromArgb,但我不确定如何构造循环,其中每个项目与其他项目有很大不同,但每次运行该函数时都是相同的.模数运算符可能会有所帮助.我一直在使用不同的方法,但每个方法总是有一个颜色太过类似于数组中的另一种颜色.我想用循环来做这件事,但这似乎暗示了一种模式以及所有颜色之间的色调,色调或亮度的相似性.

我想我可以硬编码大量的值,但我真的不想...... = X.

好吧,如果您有任何想法,请告诉我!谢谢!!

c# algorithm colors

3
推荐指数
1
解决办法
1629
查看次数

标签 统计

c# ×2

algorithm ×1

colors ×1

combobox ×1

data-binding ×1

datasource ×1

winforms ×1