草庐IT

C# 窗体 : Efficiently Displaying Many Controls

我正在构建一个包含15x15=225个按钮的控件,并且需要调整大小。因为它是一个网格,锚定和对接是行不通的。我已经尝试过TableLayoutPanel以及处理调整大小事件以手动放置和调整控件的大小。在这两种情况下,调整大小都慢得令人无法接受。当我手动处理布局时,在调整大小功能中暂停/恢复布局没有帮助。是否有一些我可以更改以加快速度的基本内容,或者这只是native控件的限制?我知道我可以从头开始构建自定义控件,自己处理点击和绘制——尽管如果可能的话我更愿意坚持使用native控件。编辑我知道有很多按钮。我的问题是技术性的;与UI设计无关。 最佳答案

c# - 如何在 macOS 上运行 Windows 窗体应用程序?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion是否可以在macOS上运行Windows窗体应用程序(在Windows上使用VisualStudio开发)?需要什么?它是免费的还是我必须购买一些东西?

c# - 将任何控件与滚动条一起使用时,不会触发 MouseWheel 事件(在 C# Windows 窗体中)

MouseWheel事件没有触发当我使用带有滚动条的任何控件(ListBox、Panel、TextBox)时。重现问题:publicclassForm1:Form{privatereadonlyButtonbutton1;privatereadonlyTextBoxtextBox1;privatevoidbutton1_MouseWheel(objectsender,MouseEventArgse){ToString();//doesn'tfirewhenuncommentlinesbelow}publicForm1(){button1=newButton();textBox1=new

c# - 动态添加复选框到 Windows 窗体只显示一个复选框

如果这看起来很n00bish,我很抱歉,但我已经搜索了几天了。我正在尝试将复选框动态添加到Windows窗体;但是,表单上只出现一个复选框。这是我的代码:for(inti=0;i如您所见,我正在通过for循环添加复选框。我试过弄乱位置并启用自动调整大小以防它们以某种方式重叠。结果是带有文本“a”的单个复选框。 最佳答案 实际上您已经创建了一个CheckBox但在同一点内。CheckBoxbox;for(inti=0;i 关于c#-动态添加复选框到Windows窗体只显示一个复选框,我们在

c# - 将 Windows 窗体嵌入到 WPF 应用程序中

我有一个旧的Windows窗体应用程序,我不想将它转换为wpf,我想将它嵌入到我的wpf应用程序主窗口中。我怎样才能做到这一点?。另外,如何使用WindowsFormHost在wpf和嵌入式WinForm之间传输文本? 最佳答案 您需要使用WindowsFormsHost.检查this教程(展示如何在WinForms中执行WPF,反之亦然)。 关于c#-将Windows窗体嵌入到WPF应用程序中,我们在StackOverflow上找到一个类似的问题: http

c# - 如何从 Windows 窗体执行控制台应用程序?

我想从Windows窗体加载事件运行控制台应用程序(例如app.exe)。我试过System.Diagnostics.Process.Start(),但在打开app.exe后,它会立即关闭。有什么方法可以让我运行app.exe并保持打开状态? 最佳答案 如果您只是想让控制台窗口保持打开状态,您可以使用如下命令运行它:System.Diagnostics.Process.Start(@"cmd.exe",@"/kc:\path\my.exe"); 关于c#-如何从Windows窗体执行控制

c# - C# 窗体程序中的 "Specified cast is not valid"错误

我遇到“指定的转换无效”错误。C#中的Windows窗体应用程序。我正在尝试从表中检索值。该值要么是smallint,要么是数字(我尝试了两个字段,都给我同样的错误),我尝试将它存储在一个int变量中。这是来源:using(SqlDataReaderrdr=cmd.ExecuteReader())//"select*fromtablewherefieldname="+value{while(rdr.Read()){intnumber=(int)rdr["quantity"];//errorishere 最佳答案 rdr["quant

c# - 通过避免文本框验证来关闭 C# windows 窗体

这是一个winformC#问题。我有一个带有验证事件监听器的文本框,用于根据正则表达式验证文本框的内容。验证后,如果输入的值不正确,我将显示消息框并取消事件,以便鼠标光标移回具有不正确值的文本框。当我从该文本框移出到其他按钮/文本框时,这工作正常。但是,当我输入不正确的值并关闭表单(使用右上角的关闭按钮)时,它会验证文本框内容并抛出消息框并且表单不会在我取消事件时关闭。问题是,当我单击表单右上角的X按钮时,我不希望验证被触发,因为我无论如何都要关闭表单。我怎样才能做到这一点?我会尽快发布代码片段。 最佳答案 要使用验证处理程序,例如

c# - 有没有办法在 Windows 窗体中延迟事件处理程序(比如 1 秒)

我需要能够延迟某些控件(如按钮)的事件处理程序,例如在实际事件发生1秒后(例如单击事件)...net框架可以做到这一点吗?我使用计时器并从计时器的滴答事件中调用我的代码,如下所示,但我不确定这是否是最佳方法!voidonButtonClick(..){timer1.Enabled=true;}voidonTimerTick(..){timer.Enabled=false;CallMyCodeNow();} 最佳答案 也许您可以创建一个创建计时器的方法?voidonButtonClick(objectsender,EventArgse

c# - 如何在 C# 中退出 Windows 窗体应用程序

我正在用C#编写一个仅使用一种窗体的Windows窗体应用程序。当我想退出并关闭应用程序时,我添加代码privatevoidDefeat(){MessageBox.Show("Goodbye");this.Close();}到Form1:Form类,这是由VisualStudio自动创建的表单类。但是当这段代码运行时,我收到以下消息:Anunhandledexceptionoftype'System.Runtime.InteropServices.ExternalException'occurredinSystem.Drawing.dllAdditionalinformation:Ag