我有一个ComboBoxwho DropDownStyleis DropDown,允许用户输入它和它的AutoCompleteModeis Suggest。问题是,如果ComboBox当前打开并且用户开始输入,辅助下拉列表会出现,但单击其中的项目实际上是从位于鼠标下方的 ComboBox 的原始下拉列表中选择项目点击。
我更喜欢在 ComboBox 的下拉列表打开时用户无法输入内容并想知道是否有比以下更优雅的解决方案:
AutoCompleteMode到None时候ComboBox是开放的DropDownStyle到DropDownList上OnClick事件(没试过,但理论上是合理的)我有这个代码:
using System.Drawing;
int offset;
string longest = "";
Font F = new Font("Microsoft Sans Serif", 8, FontStyle.Regular);
list.Aggregate("", (max, cur) => max.Length > cur.Length ? longest = max : longest = cur);
offset = Graphics.MeasureString(longest, F).Width;
Run Code Online (Sandbox Code Playgroud)
我得到一个
“非静态需要对象引用[...]”
方法错误Graphics.MeasureString,但使用:
offset = new Graphics.MeasureString(longest, F).Width;
Run Code Online (Sandbox Code Playgroud)
引发“类型名称MeasureString在类型中不存在Graphics”。奇怪的是,当该单词缺失时,编译器确实MeasureString在Graphics类(或其他任何东西)中找到了该方法。new
所以我的问题是,当编译器找到该方法时,它是静态的,并且在初始化它的新实例时 - 找不到它。
我有以下代码:
>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
Run Code Online (Sandbox Code Playgroud)
我刚刚接受了lambda函数,我得到了它们的工作原理,至少,我能理解他们恶魔黑暗魔法背后的邪恶仪式.
但即使Python代码让我疯狂,我仍然不明白为什么这段代码有效?pair没有以任何方式定义为什么存在访问索引,更糟糕的是,为什么该索引很重要(fyi pair[2]超出范围并pair[0]给出正常的有序pairs).
我们到底如何才能获得仅存在于可怕的lambda函数的不纯约束中的虚无?此外,当我们凝视它时,获取虚无的东西如何回归到我们眼中的任何空洞?