相关疑难解决方法(0)

WPF和Winforms之间是否存在性能差异?

标题基本概括了所有内容.我做了一些谷歌搜索,但我能找到的唯一信息是至少一年,有些信息比Windows 7旧.所以我很好奇,使用WPF会有性能损失吗?

对于某些事情(例如数据绑定)来说,它比你在WinForms上一起攻击的速度更快吗?

这将是一个用.NET创建的项目,以防对任何人都很重要.

编辑

我正在看的这个项目有一个基本的UI风格,但是可能会显示很多信息(它查询文件/目录并在屏幕上显示它们).我还没有决定它是否会自动刷新屏幕,但我想它可能会.

可能会有相当多的控制,但任何人都不应该考虑"图形"密集.

从业务应用程序的角度来看,我正在关注性能.

我不打算使用第三方控件.

wpf winforms

20
推荐指数
4
解决办法
2万
查看次数

TableLayoutPanel显示垂直滚动

我有TableLayoutPanel用于动态创建AutoScroll = true的控件.添加新控件时,它工作正常.但是当我删除并且所有控件都可见时,可以看到垂直滚动.这里有一些截图:

预期/正确的滚动可见性:

在此输入图像描述

可见性不正确:

在此输入图像描述

有任何想法吗?

更新:这是一些代码

tableLayoutPanel1.SuspendLayout();
tableLayoutPanel1.RowCount = 0;
tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.AutoScroll = true;
tableLayoutPanel1.Padding = new Padding(0, 0, SystemInformation.VerticalScrollBarWidth, 0);
foreach (var item in objects)
{
     tableLayoutPanel1.RowCount++;
     tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
     tableLayoutPanel1.Controls.Add(CreateNewItem(item));
 }

 tableLayoutPanel1.RowCount++;
 tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
 tableLayoutPanel1.Controls.Add(CreateAddButton());

 tableLayoutPanel1.ResumeLayout();
Run Code Online (Sandbox Code Playgroud)

以及删除代码

tableLayoutPanel1.SuspendLayout();
tableLayoutPanel1.Controls.Remove(item);
tableLayoutPanel1.RowStyles.RemoveAt(0);
tableLayoutPanel1.RowCount--;
tableLayoutPanel1.ResumeLayout();
Run Code Online (Sandbox Code Playgroud)

AutoSize为true,AutoSizeMode为GrowAndShrink

c# scrollbar tablelayoutpanel vertical-scroll vertical-scrolling

12
推荐指数
1
解决办法
1万
查看次数

如何允许用户编辑ListBox中的项目?

我想创建一个ListBox允许用户编辑项目的控件,比如Launchy中的扩展名列表框.这在WinForms中可行吗?我尝试在该列表框中使用自动窗口信息,它显示为QWidget(可能与Qt相关).

.net c# listbox winforms

11
推荐指数
1
解决办法
3万
查看次数

C#应用程序中类似msaccess的表单

我正在使用ms-access开发用于数据库管理的前端解决方案.我必须承认ms-access VBA是大规模应用程序开发的一个固定限制,这就是为什么我一直在转变使用c#而不是VBA的想法.

实际上,除了一个东西:表单之外,很容易摆脱ms-access中的所有内容.在数据显示和编辑方面,这些特别快速有效.在最新版本的ms-access中,表单就像类一样,因此您可以在运行时专门管理同一表单的一个或多个实例.在连续模式下使用时,它们可用于操作数据"excel方式",具有行和列显示,过滤和排序的可能性.简而言之,我喜欢它.

当然可以在c#(或其他类似语言)下对这个表单对象进行反向工程,但这可能已经完成了:你曾经使用过库,activeX控件或任何其他类型的附加组件吗?在c#中操作类似msacces的形式的可能性?

编辑:根据Renaud的评论,我承认没有兴趣仅转换表单的布局部分,并且无法转换其自定义/ VBA部分.在我们的特定情况下,我们很久以前就停止在表单中使用自定义VBA代码,并且从模块管理表单属性,方法和事件.这甚至在这里讨论过.

实际上,我们所有的表单都依赖于一个通用模板,并且是自动构建的"表单"和"控件"表.所有基础事件管理代码生成都是自动化的:根据其类型,控件与选定事件相关联,事件代码提供应用程序模块中保存的标准\通用程序.这使我认为可以将我们的'ms-access表单技术'转移到.NET平台.

c# ms-access vba

4
推荐指数
1
解决办法
1594
查看次数

使.NET TextBox工作FIFO样式

我有一个用C#编写的win GUI应用程序,其中有一个TextBox我写日志的组件.在某些时候,它太过负载,整个应用程序开始动摇.我想建立一个有效的机制,使其成为一个FIFO,意思是 - 使其固定大小并自动删除最旧的内容.

这样做有什么.net/c#功能吗?否则,这样做的正确方法是什么?

更新:我还有其他类型的文本数据,而不仅仅是日志.因此,ListBox对我来说,这不是一个合适的解决方案.

.net c# user-interface textbox

3
推荐指数
2
解决办法
3828
查看次数

对于每行有2个值的组合框的任何方式?

我正在寻找一个选项,我可以使用组合框的功能和listview.

原因是因为我的SQL查询不能超过1个输出,在某些情况下我可以得到.

例如,我的SQL表看起来有点像这样

Unique_ID - Name
123456789 - Simon
987654321 - Simon

基本上相同的名称可以在数据库中多次,每个条目都有自己的ID.

为了用户的缘故,我不能让他们根据ID选择要编辑的记录,而是让他们根据名称选择记录.当我的查询产生超过1条记录时,我得到MySQL异常.

这是有问题的MySQL查询:
"SELECT worldspace from survivor where is_dead = '0' _ and survivor.unique_id = (select unique_id from profile where name = '" & target & "')"

然后,该查询的输出将用于另一个UPDATE查询.

那么,我的组合框是否有可能同时将ID和名称作为值,并且它们之间有明确的分离,因此整个值保持良好的可读性,就像在listview元素中一样?

vb.net listview combobox winforms

2
推荐指数
2
解决办法
1万
查看次数

ListBox项目可以跨多行吗?C#

我想让ListBox控件包含跨越多行的项目.

基本上我想要的是每个项目跨越多行并可作为一个项目选择.有没有办法做到这一点?

.net c# winforms

2
推荐指数
1
解决办法
1万
查看次数

Windows 7 下 Windows 窗体很慢?

今天我的一个同事说GDI+和Windows Forms在windows 7下非常慢。他还提到GDI+不再由硬件加速。不幸的是我这里没有Win7机器,我从google得到的结果不是很清楚。所以我的问题是:Windows 7 下 GDI+ 慢吗?

谢谢你的帮助。

.net winforms

0
推荐指数
1
解决办法
755
查看次数