问题标签 [winforms]

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 投票
5 回答
4708 浏览

c# - WinForms 数据绑定和外键关系

我正在开发一个 WinForms 应用程序(.Net 3.5,没有 WPF),我希望能够在数据绑定 DataGridView 中显示外键查找。

这种关系的一个例子是我有一个 OrderLines 表。Orderlines 与 Products 具有外键关系,而 Products 又与 ProductTypes 具有外键关系。

我想要一个数据绑定的 DataGridView,其中每一行代表一个订单行,显示该行的产品和产品类型。

用户可以直接向网格添加或编辑订单行,并从组合框列中为订单行选择产品——这应该会更新产品类型列,在同一行中显示所选产品的产品类型。

到目前为止,我发现的最合适的方法是引入一个表示订单线的域对象,然后将 DataGridView 绑定到这些订单线的集合。然后,我将属性添加到暴露产品和产品类型的订单线对象,并引发相关的 notifypropertychanged 事件以使所有内容保持最新。然后,在我的 orderline 存储库中,我可以连接这个 orderline 对象和我数据库中的三个表之间的映射。

这适用于数据绑定方面,但必须在存储库中手动编写所有 OR 映射的代码似乎很糟糕。我认为 nHibernate 将能够帮助进行这种接线,但我正在努力通过所有外键进行映射 - 它们似乎工作正常(订单行产品的外键查找基于外键创建正确的产品对象)直到我尝试进行数据绑定,我无法获取数据绑定的 id 列来更新我的产品或产品类型对象。

我的一般方法是否在正确的范围内?如果是,什么是映射问题的好的解决方案?

或者,是否有更好的数据绑定行解决方案,包括我什至没有考虑过的外键查找?

0 投票
3 回答
12569 浏览

c# - 如何停止设计器为用户控件上的公共属性生成代码?

如何阻止设计器自动生成设置用户控件公共属性值的代码?

0 投票
5 回答
13006 浏览

.net - Winforms - 单击/拖动表单中的任意位置以移动它,就像在表单标题中单击一样

我正在创建一个用于 Winforms 应用程序的小型模态表单。它基本上是一个进度条。但我希望用户能够单击表单中的任意位置并拖动它以在桌面上移动它,同时它仍在显示。

我该如何实现这种行为?

0 投票
5 回答
7080 浏览

html - Windows 窗体的 WYSIWYG Markdown 控件?

[我们有一个 Windows Forms 数据库前端应用程序,除其他外,它可以用作 CMS;客户端创建结构,填充它,然后使用基于 ASP.NET WebForms 的站点在 Web 上公开展示结果。为了增加灵活性,他们有时被迫将实际的 HTML 标记直接输入到文本字段中,然后在数据库中以 varchar 形式结束。这可行,但远非用户友好。]

因此……一些客户想要一个所见即所得的 HTML 编辑器。我想说服他们相信他们会从使用更简单的语言(即 Markdown)中受益。理想情况下,我想要的是一个所见即所得的编辑器。他们不需要桌子,或者任何类似的复杂的东西。

粗略搜索会发现一个 .NET Markdown 到 HTML 转换器,然后我们有一个基于 Windows 窗体的文本编辑器,它输出 HTML,但显然没有任何东西可以将两者结合在一起。结果,我们仍然可以在其中保留带有标记的 varchars,但至少它既易于人类阅读,又易于解析。

这——一个输出 Markdown 的 WYSIWYG 编辑器,然后在 ASP.NET 中解析成 HTML——是否可行?有什么替代建议吗?

0 投票
7 回答
4357 浏览

.net - 这是什么控制?(带有下拉菜单的“打开”按钮)

在某些 Windows 应用程序中使用的打开文件对话框上的Open按钮包括一个带有附加选项列表的下拉箭头 - 即Open With...

打开文件对话框

我没有在每个 Windows 应用程序中都看到这个,所以你可能需要尝试一些来获得它,但是如果你进入菜单并选择File-> Open- ,SQL Server Management Studio 和 Visual Studio 2017 都会以这种方式显示按钮>File...

我想在我的一个应用程序中使用这样的按钮和内置列表,但我在 Visual Studio 的任何地方都找不到他们使用的控件。我应该澄清一下,我正在寻找那个特定的按钮,而不是整个对话框。有什么想法吗?

0 投票
3 回答
476 浏览

.net - 在从基本表单继承的表单上访问组件

我项目中的许多表单都继承自基本表单。很容易获得派生表单的 Controls 集合,但我还没有找到访问 Components 集合的简单方法,因为 VS 将其标记为私有。

我认为这可以通过反射来完成,但我不确定如何最好地去做,因为之前没有使用过反射。

现在,我正在使用一种笨拙的解决方法,其中我覆盖了一个函数 GetComponents 并返回一个我感兴趣的组件数组。这显然容易出错,因为很容易忘记实现被覆盖的函数或在添加组件时更新它。

如果有人有任何提示或可以提出更好的方法,我会很高兴听到。

0 投票
1 回答
4065 浏览

c# - 你如何以编程方式调用列表视图标签编辑

在 C# 中,我想将新添加的项目的标签编辑调用到 ListView。基本上,如果我点击此处添加场景,一旦添加了新项目,我希望文本标签处于用户可编辑状态。谢谢!

0 投票
3 回答
2949 浏览

c# - .NET:TabControl 中的双击事件

当用户通过双击选项卡(而不是单击它)更改选项卡时,我想在 .NET Windows Forms TabControl 中拦截事件。

你知道我该怎么做吗?

0 投票
7 回答
33632 浏览

.net - 如何让 .net windows 窗体项目看起来新鲜?

我正在开发一个已经存在多年的 Visual Studio 2005 vb.net Windows 窗体项目。它充满了默认的文本框、标签、下拉菜单、数据网格、日期时间选择器——所有标准的东西。最终的结果是一个非常灰色、看起来很旧的项目。

使这个项目看起来新鲜和时髦的最佳方法是什么?我宁愿不使用所有全新的表单对象重写整个解决方案,但这可以避免吗?

0 投票
7 回答
32058 浏览

visual-studio - 如何修复 Visual Studio 中的构建错误:“LC.exe”以代码 -1 退出

构建 Windows 窗体解决方案时出现以下错误:

“LC.exe”以代码 -1 退出

我使用两个商业 Windows 窗体库:Infragistics 和来自 plexityhide.com 的 Gantt-Control,这就是为什么我的 WinForms 项目中有 licenses.licx 文件的原因。我们还使用 Visual Sourcesafe 作为我们的源代码控制。

当 licenses.licx 文件位于项目中时,如果没有上述错误,我将无法构建。但是,当我将它们从我的项目中排除时,构建工作正常。但是当我想在设计器中使用商业控件时,我需要 licenses.licx 文件。

这是一款全新的开发人员机器,带有 Windows XP SP3(德语)和 Visual Studio 2005 Team Edition for Software Developers(德语),带有 SP1。

顺便说一下,它是 Windows XP 32 位。

有什么建议么?