问题标签 [windows-controls]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1019 浏览

c# - 控件范围内的光标

这个事件是从

(Winforms 应用程序)

我想知道我的光标何时不是我的工具条。但是,无论我的光标在哪里,上面的代码都会返回相同的结果。

此代码位于从工具条上的按钮或上下文菜单上的按钮调用的事件处理程序中。如果在上下文菜单上调用它,我假设用户想要使用当前鼠标点。否则我希望用户去点击他们想要的点

有什么建议么?

0 投票
4 回答
1271 浏览

c# - 如何通过 Tab 及时启用 WinForm 按钮以接收焦点

视觉工作室 2010,C#

我有一个ComboBox带有一个DropDownAutoComplete设置为SuggestAppendAutoCompleteSource来自的ListItems。用户将数据键入其中,直到输入正确为止。在数据与列表项之一匹配之前,组合框旁边的按钮被禁用。

如果用户点击 tab 键,自动完成功能会接受当前的建议。它还移动到启用的选项卡序列中的下一个控件。当然,因为我希望它转到禁用按钮,所以我需要在验证条目后立即启用它。

问题是我尝试过的所有事件PreviewKeyDown,LostFocusSelectedIndexChanged不允许我及时启用按钮以使其被处理并获得焦点。它总是按选项卡顺序转到下一个按钮,该按钮始终处于启用状态。

我准备好让按钮保持启用状态,如果过早按下它会给出错误,但我不想那样做。我也不想使用特殊模式标志来跟踪这些控件何时获得焦点。验证似乎是一件正常的事情,但我被困住了。

如果在SelectedIndexChanged用户进行匹配时起作用,这将很容易。当框清除或找到键入的匹配项时,它不会触发。

0 投票
1 回答
577 浏览

c++ - 选项卡控件创建后如何更改其样式?

我有一个包含来自 CommCtrl.h 的选项卡控件的 Windows 窗体(不是WPF 窗体)。根据文档,创建控件后,我应该能够将“样式”更改为 TCS_BUTTONS。不幸的是,我找不到任何关于如何做到这一点的例子。任何人都可以提供 C++ 或 VB6 代码的参考来执行此操作吗?

更具体地说,我使用的是包装原生 MS 选项卡控件的 PowerBuilder 11.5。PowerBuilder 不公开 TCS_BUTTONS 样式,但我正在寻找一种方法来发送原始消息以更改样式以绕过此 PowerBuilder 限制。

0 投票
1 回答
1023 浏览

wpf - WPF、windows窗体中的任何自动展开/折叠控件

在 Visual Studio 中,当您将鼠标悬停在解决方案资源管理器窗口时,它会自动展开。如果您将鼠标移开,窗口会自动折叠。窗口也有一个别针,所以你可以别针它。我想知道 WPF 或 Windows 窗体或开源中是否有这样的控件?我想在我的项目中有这样的东西。谢谢

0 投票
1 回答
5153 浏览

c# - 如何从 Windows 控件的文本框中获取文本?我怎么知道它是一个文本框?

我使用 spy++ 来找到所需 Windows 控件的正确句柄,该控件属于不受管理的独立应用程序。请注意,spy++“属性检查器”提到此窗口没有任何子(或父)窗口。

我还设法使用以下代码取回窗口的名称:

这个窗口比它的标题有更多的信息,这就是我似乎用 WM_GETTEXT 得到的所有信息(将长度的值更改为 200 没有帮助,无论如何都是一个长镜头)。

接下来,我尝试了一种使用 UI 自动化的不同方法:

但我得到了这个错误:

UIAutomationClient.dll 中出现“System.InvalidOperationException”类型的未处理异常

附加信息:不支持的模式。

最重要的是,我也尝试过使用 Microsoft Inspect.exe,但在 UI 自动化和 MSAA 模式下,它都无法专注于窗口中的文本。


是不是说数据不能用 UI 自动化实现??还是我应该只是使用错误的方法/类型?

除了使用 GetWindowText、WM_GETTEXT 或 UI 自动化之外,还有其他方法可以从此窗口获取数据吗?

我对这些东西还很陌生,但我正在努力学习。此外,我没有当前的潜在客户,因此非常感谢任何有用的评论/答案!如果您确实回答,请务必包含有用的关键字,以便我能够了解有关您的解决方案的更多信息

0 投票
2 回答
25832 浏览

c++ - Win32 - 将文本附加到编辑控件

试图将文本附加到对话框内的编辑控件。我无法让 _tcscat_s 正确附加。它崩溃并说明缓冲区太小或有关空终止字符串的内容。

0 投票
0 回答
2105 浏览

autoit - 设置用于 AutoIT 的 ControlID

我正在尝试对 Windows 应用程序进行一些自动化功能测试,但我刚刚接触了 AutoIT。看起来大多数(如果不是全部)标准 Windows 应用程序都设置了控件 ID。不幸的是,当我使用 Finder 工具将鼠标悬停时,控件 ID 字段为空白。所以看起来应用程序(用 C 编写)没有为每个元素设置一个 ID?

我已经为 iPad 应用程序使用了 XCode 的 UI 自动化,我们使用“setAccessibilityIdenitifier”来唯一标识每个字段。我正在尝试找出 Windows 应用程序的等效项。

这就引出了一个问题,AutoIT 甚至是正确的工具吗?我所有的测试都是基于计算的。因此,您可以假设 2 个输入字段和一个输出。因此,如果用户输入 5 和 2 并点击“添加”,我需要检查输出是否为 7。所以我需要唯一标识每个元素。

我还注意到,当有一组元素时,当我将鼠标悬停在该组上时,我得到“静态”作为类名,当我尝试访问每个元素以及其他所有控件(如 Instance、ClassNameNN)时,只有坐标发生变化保持不变。有任何想法吗?

提前致谢!

编辑:感谢 AutoIT 论坛的人,小组问题已解决 - http://www.autoitscript.com/forum/topic/151055-autoit-basics/

我仍然需要知道如何从应用程序端 C 代码设置控件 ID

0 投票
0 回答
509 浏览

activex - 将 ActiveX 控件转换为 Windows 窗体控件

我有一个带有 activeX 控件的 excel 表。由于 ActiveX 控件在 MS Office 2007 及更高版本中无法从受信任位置之外运行,因此我应该将控件转换为 Windows 窗体控件。我的 Excel 表受密码保护。我需要了解代码差异。请指导我如何进行。如果有任何快速转换的工具,那就太好了。提前致谢。

0 投票
1 回答
402 浏览

windows - 强制 IAutoComplete 刷新数据集?

我正在实现一个自定义 IEnumString 以用作 IAutoComplete2 对象的数据集。

问题在于,当在编辑框中输入第一个字符时,IAutoComplete2 似乎仅在我的 IEnumString 上调用 reset ,然后依赖于数据集在后续按键期间保持静态(并在此之后进行本地过滤)这一事实。

我试图删除 IAutoComplete2 对象,然后立即创建一个新对象并将其附加到控件,但这会导致 shell32 崩溃。

这甚至可能吗?

0 投票
3 回答
661 浏览

c# - XAML 中的 Wpf 事件无法正确关注按钮

当我按下键盘上的箭头键时,我尝试让按钮移动。但是我得到的是我总是需要先用鼠标按下按钮才能获得正确的焦点,然后我可以用左箭头键移动它,否则不能。但是,据我所知,KeyDown 事件是由 Grid 而不是按钮触发的。

这是我在后面的代码中的做法:

XAML:

谁能解释一下?谢谢。