Tag: winforms

Windows窗体 – Tab键在子面板中不起作用

我有一个包含一些文本框和按钮的表单中的子面板。 我尝试为这些控件设置tabstop和tabindex属性,以便用户可以从一个控件切换到下一个控件。 但由于某种原因,标签不起作用,当按下标签键时,弯曲停留在同一个具有焦点的区域。 我正在使用C#和.Net 3.5框架。 以下是我的代码的样子 – rightPanel.Controls.Clear(); marketMessageLabel = new Label(); marketMessageLabel.Location = new Point(0, 20); marketMessageLabel.AutoSize = false; marketMessageLabel.Size = new Size(rightPanel.Width, 42); marketMessageLabel.BackColor = Color.White; marketMessageLabel.Font = new System.Drawing.Font(“Verdana”, 8.00F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); rightPanel.Controls.Add(marketMessageLabel); signinUserNameLabel = new Label(); signinUserNameLabel.Location = new Point(0, 150); signinUserNameLabel.Size = new Size(60, 14); signinUserNameLabel.BackColor = Color.White; signinUserNameLabel.Text […]

如何在任何时候保持窗口可见,但不要强迫它在顶部

我正在创建各种各样的“桌面小工具”,我已禁用手动最小化窗口,但现在还有另一个问题:例如,如果用户按下Windows + D ,系统仍然可以隐藏窗口。 当以这种方式隐藏时,不会触发通常的最小化/resize/可见性事件。 我想做一些几乎像TopMost事情,但不强迫窗口顺序。 也许可以使用win32 API安装全局快捷方式事件,并简单地将TopMost设置为true,但这听起来非常糟糕。 我找到了一个解决方案,但它似乎无法在Windows 10上运行: 通过“显示桌面”/ Win + D保持窗口可见另一个常见选项,即编写实际的桌面小工具,在Windows 10上是不可能的,给定他们的弃用。 是否有任何其他方法可以在任何时刻保持窗口可见(但不在屏幕顶部)?

C# – 在设计时设置数据绑定级联combobox

我有我认为是一个简单的问题,但经过多次搜索后找不到合适的例子。 简而言之,它是一个窗体应用程序,在窗体上有2个数据绑定combobox,第一个用于“部门”,第二个用于“部分”。 这些组合分别绑定到SQL数据库中的相应表。 组合应该在用户从第一个选择部门的情况下操作,这导致第二个组合被过滤以仅显示属于该部门的部分。 (换句话说,这是经典的“级联”combobox问题)。 我的经验最初是使用Delphi,这是一个简单的设计时间问题。 但是,在C#中我被困住了,无法让它工作。 我原以为这可以在设计时完成,可能在SelectedIndexChanged事件后面有一些最小的代码。 如果有人有一个基本的(forms,2个combobox,简单的数据源)这个例子他们可以指出我,我将非常感激。 谢谢,詹姆斯

如何在RDLC中设置参数值

我在报告中为日期范围添加了两个文本框。 要填充文本框中的值,我将参数设置为文本框。 现在,日期范围来自名为DateRange的表单,该表单具有两个DateTimePickers。 如何设置rdlc中的文本框的值等于这些DataTimePickers?

将多个列表绑定到DataGridView

我有两个静态列表,它们将绑定到DataGridView以及两个按钮字段。 我只能绑定一个列表和一个按钮字段。 是否可以将多个列表绑定到DataGridView ? ServiceController objSAVAdminService = new ServiceController(“SAVAdminService”); ServiceController objSAVService = new ServiceController(“SAVService”); ServiceController objPPVService = new ServiceController(“PPVService”); ServiceController objMLLService = new ServiceController(“MLLService”); List ServiceName = new List(); List ServiceStatus = new List(); ServiceName.Add(objSAVService.ServiceName.ToString()); ServiceName.Add(objSAVAdminService.ServiceName.ToString()); ServiceName.Add(objPPVService.ServiceName.ToString()); ServiceName.Add(objMLLService.ServiceName.ToString()); ServiceStatus.Add( objSAVService.Status.ToString()); ServiceStatus.Add( objSAVAdminService.Status.ToString()); ServiceStatus.Add( objPPVService.Status.ToString()); ServiceStatus.Add( objMLLService.Status.ToString()); 我需要将这两个列表绑定到DataGridView并且每行上还有两个按钮来启动或停止相应的服务。

像在WPF中一样在winform中绑定

我想将一个winform的表单的Width属性绑定到标签上的Text,这样标签的文本就会在每次鼠标移动时更新。 目前我只在点击表单上的某个元素但没有连续更新时才实现更新(就像你在Resize处理程序中更改文本一样)。 怎么做这件事?

如何在没有表单的情况下使用Visual Studio设计器

我正在使用Visual Studio来创建Windows窗体项目。 解决方案资源管理器中没有用于我的项目的Form类 – 我可以动态构建所有表单。 所以我没有机会在Visual Studio或工具箱中打开Designer。 但我想创建一个ContextMenuStrip并在Designer中编辑它。 我通常通过将ContextMenuStrip从ToolBox拖到Designer上来完成此操作。 但是,我没有任何方法(我可以告诉)在没有首先创建表单或用户控件的情况下打开Designer。 如何在不首先将其与表单或用户控件关联的情况下编辑设计器中的ContextMenuStrip? 要清楚 – 我知道如何在代码中动态生成ContextMenuStrip。 那不是我想要的。 我想使用Designer来创建和编辑ContextMenuStrip,而不必首先将ContextMenuStrip与我将不会包含在我的项目中的表单或用户控件相关联。 (Visual Studio 2013 Pro,如果重要的话)

当要滚动的项目太多时,Windows窗体列表框会溢出

我正在构建一个基于后缀树的索引器应用程序,这使我能够非常快速地索引整个文档和搜索字符串,子字符串等。 我正在做的是在文本框中输入一个字符串,按下按钮,并运行查询后缀树的函数,并将字符串的所有出现位置添加到列表框中。 所以列表框里面有很多整数。 通常情况下,这很好。 例如,搜索“向导”或“甘道夫”或“霍比特人”(我将FOTR索引为测试:D)工作正常且花花公子。 但是,我现在用字母e试试。 问题是字母e的位置确实列在列表框中。 全部88974个。 但是,当我通过拖动滚动按钮向下滚动时,当我在项目60000左右时,列表框似乎循环返回到顶部。 由于我尝试滚动页面并且一切正常,因此问题更加严重。 我知道滚动88974(基于listbox.Items.Count)项目有点极端,但从逻辑上讲,没有理由存在这样的问题。 感谢您阅读这篇文章! 编辑:对所有回答的人,谢谢你的回答。 我最终使用listview实现了它,并且速度更快,可以很好地保存很多项目。 谢谢!

Windows窗体中的字体inheritance

这可能是一个愚蠢的问题,有一个微不足道的答案,但我在这里画一个空白,并希望得到一些帮助。 假设我在Windows窗体应用程序中有两个窗体:主窗口和子窗口,它将显示为第一个窗口的对话框。 主窗口包含一组控件,包括菜单条和工具栏。 如何确保两个表单中的所有控件都使用相同的用户可配置字体? 使用VS设计器快速测试这一点,我将主窗体的Font属性设置为默认值以外的其他属性,并确保使用默认值设置该窗体中的所有控件。 这样做会导致某些控件相应调整,但菜单条和工具栏的字体保持不变/默认。 这是通过设计与那些控件或是否有一些明显的我缺少? 至于第二种forms,我将这个表格显示为主表格的子对话框。 除非我明确设置子表单的字体,否则它无法使用与主表单相同的字体显示(尽管配置了默认字体)。 设置对话框窗口的字体以匹配父母正确的方法或我错过了什么? 再次,只是为了清楚。 我的代码中只有一个位置正在设置Font属性,它位于主窗体上。 我没有问题,因为控件/表单是明确设置的。 感谢您的帮助!

如何用C#(keyListener)记录输入

我想写一个简单的文本到语音程序。 首先,我想让程序只播放书面符号。 例如,如果我输入’a’,我希望程序说’a’(我已经记录了所有这些),所以当我输入一个单词时,它应拼写它。 但是,我是C#和.Net的初学者,而不是如何使程序理解我输入的文本。 例如,在java中我听说有一个keyListener类,但我不知道应该使用哪个类。 我查看了MSDN但找不到它。 我应该使用哪个类或函数来收听键入的键?