草庐IT

winforms-interop

全部标签

c# - 覆盖 Winforms ComboBox 自动完成建议规则

我正在尝试修改Windows.FormsComboBox的行为,以便自动完成下拉列表根据我指定的规则显示项目。默认情况下,如果您在ComboBox中使用自动完成,则遵循的规则是“字符串s包含在下拉列表中if(s.StartsWith(userEnteredTextInTheComboBox))”我真正感兴趣的是替换一个新规则对于当前的,但我找不到办法解决它。(具体来说,我更喜欢s.Contains而不是s.StartsWith。)我可以使用两个控件而不是一个控件拼凑出一个笨拙的解决方案,但我真的更愿意使用一个真正按照我的意愿行事的解决方案。更新:我基本上找到了thesamequesti

c# - Winforms DataGridView 数据绑定(bind)到复杂类型/嵌套属性

我正在尝试将DataGridView数据绑定(bind)到包含具有以下结构的类的列表:MyClass.SubClass.Property当我单步执行代码时,从未请求SubClass。我没有收到任何错误,只是没有看到任何数据。请注意,我可以在具有相同层次结构的编辑表单中进行数据绑定(bind)。 最佳答案 LawofDemeter.在公开SubClass.Property的MyClass上创建一个属性。像这样:publicclassMyClass{privateSubClass_mySubClass;publicMyClass(Sub

c# - 配置字符串的 Winforms 连接属性对话框

有没有办法在运行时显示连接字符串浏览(数据库)的连接属性对话框?因为我希望用户能够使用GUI连接到各种数据库。与我们在visualstudio连接属性对话框中获得的相同。提前致谢 最佳答案 寻找this准确解释您要查找的内容的文章。她说的是以下内容:您需要为您的项目添加几个引用:OLEDB服务组件1.0类型库MicrosoftActiveX数据对象2.x库使用以下代码:usingMSDASC;usingADODB;privatestringBuildConnectionString(){stringstrConnString="";

c# - 如何在 C# 中使用箭头禁用 WinForm 上的导航?

我需要禁用使用表单上的箭头更改焦点。有没有简单的方法可以做到这一点?谢谢 最佳答案 类似的东西:privatevoidForm1_Load(objectsender,EventArgse){foreach(Controlcontrolinthis.Controls){control.PreviewKeyDown+=newPreviewKeyDownEventHandler(control_PreviewKeyDown);}}voidcontrol_PreviewKeyDown(objectsender,PreviewKeyDownE

c# - 如何在 winforms 桌面应用程序中制作自动完成文本框

我有一个单词列表。该列表包含大约100-200个文本字符串(实际上是地铁站的名称)。我想制作一个自动完成的文本框。例如,用户按“N”字母,然后出现一个(结束)适当的选项(只有一个选项)。必须选择结尾。怎么做?PS1:我想,有一个文本框控件具有如下属性:ListAppropriateOptions{/*...*/}PS2:对不起我的英语。如果您不明白->问我,我会尽力解释! 最佳答案 以防@leniel的链接失效,这里有一些代码可以解决这个问题:AutoCompleteStringCollectionallowedTypes=newA

c# - WinForms 应用程序的体系结构?

几周前我开始了一个WinForms项目,因为我真的不知道我想要什么功能,所以我只是一路添加它们。这现在造成了一个可怕的困惑,我的MainForm是一个大泥球,例如一些重要的状态更改是由UI元素触发的,以至于我必须调用控件的OnChange事件才能更改数据库中的某些状态.简而言之:我刚刚开始了一个新项目,我想在其中采用更好的方法。我只是不知道哪个是“好”的。在ASP.netMVC中,我发现MVVM模式非常有用,但在桌面上,MVVM似乎只适用于WPF,不适用于WinForms。另一种方法是三层架构:我有我的数据库类,它目前直接与UI对话。我现在创建一个新的静态类(“ApplicationS

c# - WinForms Validating 事件阻止 Escape 键关闭表单

我有一个简单的表单,只有一个文本框,外加确定和取消按钮。表单的AcceptButton和CancelButton设置正确,OK和Cancel按钮的DialogResult设置为“OK”和“Cancel”。我想向TextBox添加验证,这将防止用户在验证失败时确定表单,但也将允许他们像往常一样取消。CausesValidation属性在所有控件上默认为True,但我已将取消按钮上的此属性更改为False。果然,单击“确定”或按Enter键将运行我连接到TextBox的验证事件。按取消按钮绕过验证,这是完美的。但是,按Escape取消表单与按“取消”按钮不执行相同的操作-它会引发验证事件并

c# - Winforms ListView - 双击时停止自动检查

如何使ListView在双击某项时不自动选中它?我可以尝试连接到MouseDoubleClick事件,并将Checked属性设置为false,但这感觉有点像hack。当实际检查项目时,我还会运行一个相当昂贵的计算,并且不希望此代码在双击时运行。使用上面的事件Hook,在处理双击之前引发ItemCheck和ItemChecked事件。有什么好的解决方案吗? 最佳答案 当您必须修改nativeWindows控件的工作方式时,通常不会想到优雅这个词,但这正是这里所需要的。请考虑您是否真的希望您的控件的行为与任何其他程序中的ListView

c# - 在 C# winform 中,我得到了 : "only truetype fonts are supported. This is not a TrueType Font"

我有C#winform,我安装了几个ttf字体,但是当我将文本框字体设置为我下载的任何字体时,我得到这个错误即使我100%确定我安装的字体是ttf..为什么?以及如何解决这个问题? 最佳答案 当您在VisualStudio运行时安装新字体时会发生这种情况。关闭VisualStudio,然后重新打开它。问题就解决了。 关于c#-在C#winform中,我得到了:"onlytruetypefontsaresupported.ThisisnotaTrueTypeFont",我们在StackOv

c# - WinForm 应用程序中的沙漏问题

在我的程序中,在WinForm中有一个UI。在ThreadPool中启动方法之前,我将光标设置为沙漏。我在UI线程中设置光标的代码如下所示:Application.UseWaitCursor=true;方法完成后,我返回到UI线程以将光标设置为正常大小写。Application.UseWaitCursor=false;我的问题是光标停留在沙漏上,直到我不移动鼠标。如果用户等待操作结束而不移动鼠标,这会有点令人不安。谁能帮帮我?杰罗姆 最佳答案 实际上,还有另一种方法可以做到这一点,这是我在研究这个问题数小时后在某处找到的。不幸的是,