Windows 窗体和 C# 中的动态自上而下的控件列表?

     2023-03-31     263

关键词:

【中文标题】Windows 窗体和 C# 中的动态自上而下的控件列表?【英文标题】:Dynamic top down list of controls in WindowsForms and C#? 【发布时间】:2010-09-06 20:39:05 【问题描述】:

在我们的项目SharpWired 中,我们正在尝试创建一个类似于 Firefox 或 Safari 中的下载窗口的下载组件。也就是说,一个自上而下的下载列表,它是包含进度条、按钮等的自定义控件。

要求应该是一个列表,每行一个元素。每个元素都必须是自定义控件。整个列表应该是动态调整大小的,这样当你让它变长/变短时,列表会在需要时添加一个滚动条,当你使它变细/变宽时,自定义控件应该调整到列表的宽度。

我们已尝试使用 FlowLayoutPanel,但尚未调整大小以按照我们想要的方式工作。最好我们只需要将自定义控件的锚定设置为左和右。我们也考虑过使用TableLayoutPanel,但发现到目前为止动态添加行开销太大。

这一定是一个很常见的用例,我觉得FlowLayoutPanel 没有直观的方法来做这件事有点奇怪。 有没有人做过类似的事情或有提示或技巧让我们继续前进?

干杯! /亚当

【问题讨论】:

【参考方案1】:

如果您不想使用数据绑定(通过DataRepeater 控件,如上所述),您可以使用常规Panel 控件并将其AutoScroll 属性设置为true(以启用滚动条)。

然后,您可以手动添加自定义控件,并将每个控件的Dock 属性设置为Top

【讨论】:

这就是我们一直在做的事情。数据绑定解决方案对我们来说开销太大。【参考方案2】:

.NET 3.5 SP1 引入了一个DataRepeater Windows 窗体控件,听起来它会做你想做的事。将其绑定到“下载”列表(或您的列表所代表的任何内容)并自定义每个项目面板以包含您需要的控件。

【讨论】:

该控件位于 VisualBasic Power Pack 中。我将如何在 C# 中使用它? @Adam 不,它只是在 VisualBasic 命名空间中。您可以从任何和所有 .NET 语言中使用它,它是 .NET 3.5 SP1 框架的一部分。 据我所知,您可以简单地在解决方案中引用程序集,并正常使用其中的方法。编译后的 .Net 程序集可以无缝地相互操作。当然,我对这个大会没有具体的经验,我不能保证我刚才在这个例子中所说的任何事情。 :)

想要使用 C# 和 Windows 窗体将两个不同表中的 ID 添加到一个关联表中

】想要使用C#和Windows窗体将两个不同表中的ID添加到一个关联表中【英文标题】:WanttoaddIDsfromtwodifferenttablesintooneassociativetableusingC#andWindowsForms【发布时间】:2021-08-0901:22:03【问题描述】:我想使用WindowsForms和C#来实现一个包含以... 查看详情

什么是最佳选择,Windows 窗体或 C# 中的 WPF 开发?

】什么是最佳选择,Windows窗体或C#中的WPF开发?【英文标题】:Whatwouldbethebestchioce,WindowsFormsorWPFdevelopmentinC#?【发布时间】:2011-04-1512:00:35【问题描述】:在学习C#语言时。如今,所有应用程序都在开发中。我会更好地专注于Window... 查看详情

如何通过在 C# windows 窗体中的文本框中输入来更改图像的大小?

】如何通过在C#windows窗体中的文本框中输入来更改图像的大小?【英文标题】:HowtochangethesizeofimagebygivinginputintextboxinC#windowsform?【发布时间】:2018-01-1414:43:11【问题描述】:我有一个Windows格式的图像和两个文本框。我希望当我... 查看详情

在退出之前跟踪 - 并正确结束 - C# - C++/CLI - C++ Windows 窗体应用程序中的本机和托管线程

】在退出之前跟踪-并正确结束-C#-C++/CLI-C++Windows窗体应用程序中的本机和托管线程【英文标题】:Tracking-andcorrectlyending-nativeandmanagedthreadsinaC#-C++/CLI-C++Windowsformsapplicationpriortoexit【发布时间】:2010-07-2010:44:20【问题描述】:这是来... 查看详情

我正在做服务器和客户端编程服务器是 Windows 窗体,客户端是 c# 中的 Web 应用程序

】我正在做服务器和客户端编程服务器是Windows窗体,客户端是c#中的Web应用程序【英文标题】:I\'amdoingaserverandclientprogrammingServerisaWindowsformandclientisawebapplicationinc#【发布时间】:2017-08-0413:47:44【问题描述】:错误1​​无法将文... 查看详情

从 C# 中的外部 DLL 访问 windows 窗体控件

】从C#中的外部DLL访问windows窗体控件【英文标题】:AccesswindowsformscontrolsfromexternalDLLsinC#【发布时间】:2019-02-1111:18:33【问题描述】:这是我在这里的第一个主题,我没有找到任何类似的主题,所以我尽量描述我的问题:我的公... 查看详情

c# windows窗体中的文本框

】c#windows窗体中的文本框【英文标题】:Textboxinc#windowsForm【发布时间】:2012-01-2321:41:44【问题描述】:我的表单中有一个文本框。在表单加载事件中,我想要我的textbox.text="EnterName"但它应该看起来好像单击了文本框,文本框的... 查看详情

Windows 窗体中的东西在最大化时移动 - C#

】Windows窗体中的东西在最大化时移动-C#【英文标题】:StuffinWindowsFormMoveWhenMaximized-C#【发布时间】:2008-09-3018:14:06【问题描述】:我已经有一段时间没有编写GUI程序了,所以这最终可能非常简单,但我在网上的任何地方都找不到... 查看详情

从 C# Windows 窗体调用 PHP Web 服务

】从C#Windows窗体调用PHPWeb服务【英文标题】:CallingPHPWeb-ServicefromC#WindowsForm【发布时间】:2019-05-0701:14:07【问题描述】:我正在尝试将C#Windows窗体的用户名、密码和软件令牌号验证为MySQL数据库中的值。我的C#代码:privatevoidbtnlogi... 查看详情

Windows 窗体 - C# - 要求管理员权限 [重复]

】Windows窗体-C#-要求管理员权限[重复]【英文标题】:WindowsForms-C#-askforadministatorprivilege[duplicate]【发布时间】:2011-12-2503:31:22【问题描述】:可能重复:HowtoforceC#ApptorunasadministratoronWindows7我正在构建一个WinFormsC#应用程序,我需要... 查看详情

使用c#禁用Windows窗体桌面应用程序中的屏幕捕获[重复]

】使用c#禁用Windows窗体桌面应用程序中的屏幕捕获[重复]【英文标题】:Disablescreencaptureinwindowsformsdesktopapplicationsusingc#[duplicate]【发布时间】:2017-09-0614:10:12【问题描述】:我正在用C#开发一个Windows桌面应用程序,我想禁用该应... 查看详情

从 c# windows 窗体中的图像中读取文本

】从c#windows窗体中的图像中读取文本【英文标题】:Readingtextfromimagesinc#windowsform【发布时间】:2015-12-2400:41:49【问题描述】:我有一个Windows窗体应用程序,我将在其中将读取车牌文本的图像添加到文本块中。我可以使用哪种dll... 查看详情

C# windows窗体中的文本框到数组声明

】C#windows窗体中的文本框到数组声明【英文标题】:TextboxtoarraydeclarationinC#windowsform【发布时间】:2013-05-3118:29:42【问题描述】:您好,我是C#编程的新手,所以请多多包涵。我目前正在开发一个“简单”的小程序,它允许用户在... 查看详情

C# Windows 窗体中的 WMP 在显示 GIF 后停止播放声音

】C#Windows窗体中的WMP在显示GIF后停止播放声音【英文标题】:WMPinC#WindowsFormstopsplayingsoundafterdisplayingGIF【发布时间】:2017-01-1107:22:12【问题描述】:我正在制作一个Windows窗体应用程序,它应该在播放音乐时播放动画gif。我使用了... 查看详情

在 c# 中使用文本框中的数据库值打开特定的 Windows 窗体

】在c#中使用文本框中的数据库值打开特定的Windows窗体【英文标题】:openspecificwindowsformusingdatabasevalueintextboxinc#【发布时间】:2018-09-0804:28:33【问题描述】:我有3个现有的Windows窗体现在我想在文本框中输入现有的windows窗体名称... 查看详情

如何检测windows窗体中的控件并对其进行编辑c#

】如何检测windows窗体中的控件并对其进行编辑c#【英文标题】:Howtodetectacontrolinawindowsformandedititc#【发布时间】:2020-05-1814:05:17【问题描述】:我的表格所以,我有一个带有TableLayoutPanel的表单,女巫包含文本框。我需要代码来检... 查看详情

Windows 窗体中的 C#:“索引超出了数组的范围”尝试自动添加新空间

】Windows窗体中的C#:“索引超出了数组的范围”尝试自动添加新空间【英文标题】:C#inWindowsForms:"Indexwasoutsidetheboundsofthearray"atatrytoauto-addnewspace【发布时间】:2017-04-0210:08:29【问题描述】:我真的不明白这个错误来自哪里... 查看详情

TextBox 仅接受数字和逗号 - C# Windows 窗体

】TextBox仅接受数字和逗号-C#Windows窗体【英文标题】:TextBoxOnlyAcceptsNumericandComma-C#WindowsForms【发布时间】:2016-09-1420:02:26【问题描述】:我想限制只接受数字和逗号的文本框。我该怎么做这个按键??例子:1,2,223,222-->Valid1,,22,... 查看详情