草庐IT

WinForms

全部标签

c# - 用户控制事件的设计时查看

我已经创建了一个继承自System.Windows.Forms.UserControl的WinForms控件...我在控件上有一些自定义事件,我希望我的控件的使用者能够看到这些事件。在设计期间,我实际上无法让我的事件显示在“属性”窗口的“事件”选项卡中。这意味着分配事件的唯一方法是以编程方式编写myUserControl.MyCustomEvent+=newMyUserControl.MyCustomEventHandler(EventHandlerFunction);我想这对我来说很好,但是当其他人开始使用我的UserControl时,他们不会知道这些事件的存在(除非他们阅读库doc

c# - 参数计数与 Invoke 不匹配?

下面的代码块导致错误:用户代码未处理TargetParameterCountException。参数计数不匹配。publicvoidAddListViewItem(string[]Data){if(InvokeRequired){Invoke(newAction(AddListViewItem),Data);}else{ListViewData.Items.Add(Data[0]).SubItems.AddRange(newstring[]{Data[1],Data[2],Data[3],});}}有什么想法吗? 最佳答案 错误是由

c# - 如何在 winform 和 wpf 中以编程方式进行鼠标移动、单击、右键单击和按键等操作?

如何在winform和wpf中以编程方式进行鼠标移动、单击、右键单击和按键等操作。如果可能,请帮助我提供代码片段。 最佳答案 如果我正确理解您的问题,那么您想要真正模拟输入。在这种情况下,SendInput是可行的方法。来自thislinkPInvoketoSendInput–thisistheofficialwaytosimulateinput.Itpushestheinputthroughalloftheexpectedcodepaths,andisindistinguishablefromrealinput.一个简单的使用方法

c# - 如何更改DataGridView 中的列宽?

我使用VisualStudio的SQLServerCompact3.5创建了一个数据库和表,并将数据集作为我的数据源。在我的WinForm上,我有一个包含3列的DataGridView。但是,我一直无法弄清楚如何让列占据DataGridView的整个宽度,如下图所示。我想让缩写栏更宽,然后让描述栏一直延伸到表单的边缘。有什么建议吗?更新:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;u

c# - 如何以编程方式滚动面板

我有一个包含一些内容的System.Windows.Forms.Panel。我正在尝试以编程方式向上或向下滚动面板(垂直)。我已尝试将AutoScrollPosition属性设置为面板上的新Point,但似乎没有成功。我将AutoScroll属性设置为true。我什至尝试按照建议将VerticalScroll.Value设置两次here,但这似乎也不起作用。这是我目前正在做的://Ihavetriedpassingbothpositiveandnegativevalues.panel.AutoScrollPosition=newPoint(5,10);AutoScrollPositio

c# - 如何正确关闭已创建多个线程的 C# 应用程序?

我正在编写一个GUI应用程序。应用程序在其生命周期内打开了多个线程。其中一个线程正在处理可能来自其他应用程序的事件,因此它在while(true)循环中等待永远不会终止的事件。用户可以随时关闭应用程序。我想关闭主应用程序打开的所有线程。我正在使用Process.GetCurrentProcess().Kill();暂时解决这个问题。这是一个好的解决方案吗?如果不是,为什么以及处理这个问题的正确方法是什么,如何关闭主应用程序打开的所有线程? 最佳答案 如果您将新线程创建为后台线程(通过在启动它们之前设置IsBackground),它们

c# - 无法创建组件 .. 类型未标记为可序列化

我正在使用VisualC#2008ExpressEdition创建一个WinForms用户控件。一切都进行得很顺利,直到我发现我可以玩List属性窗口中的集合属性。在尝试更改集合并运行项目后,我开始遇到错误,并尽我所能将一切恢复到正常工作时的状态。现在,当我尝试将控件实例放置到窗体上时,出现以下错误。Failedtocreatecomponent'ColorPicker'.Theerrormessagefollows:'System.Runtime.Serialization.SerializationException:Type'WindowsFormsApplication1.Co

c# - 为什么checkedlistbox没有数据源?如何绑定(bind)到值列表?

我正在开发一个Winform,我需要一个checkedlistbox。我将值存储在一个具有List属性的对象中:publicstaticclassFields{publicstaticIListFieldList{get;set;}staticFields(){...//populateFieldList}}现在我希望我的CheckedListBox使用Fields.FieldList作为数据源。在网上搜索后发现需要设置//inmyForm_LoadmycheckedListBox.DataSource=Fields.FieldList;但是myCheckedListBox没有Data

c# - 如何在特定时间间隔后运行方法?

很清楚:例如,假设我的表单中有一个按钮。当用户点击按钮时,一些void方法应该在30秒后运行。会有一个void方法DoAfterDelay接受两个输入参数。第一个是做的方法(使用委托(delegate)),另一个是时间间隔。所以我会:publicdelegatevoidIVoidDelegate();staticvoidDoAfterDelay(IVoidDelegateTheMethod,TimeSpanInterval){//***Somecodethatwillpausetheprocessfor"Interval".TheMethod();}因此,我只需要一段代码来将进程暂停特

c# - 如何将类似控制台的元素添加到 c# winforms 程序

我有一个监视调试消息的程序,我尝试使用TextBox并将消息附加到它,但它不能很好地扩展,并且当消息数量变大时速度会变慢。然后,我尝试了一个ListBox,但在添加新消息时,滚动会快速移动到顶部。它也不允许像文本框那样进行剪切和粘贴。在winforms窗口中实现类似控制台的元素的更好方法是什么。编辑:我仍然希望能够嵌入像visualstudio这样的输出窗口,但由于我无法找到一种简单的方法,因此我使用了两种解决方案。除了使用有效的RichTextBox之外,您还必须时不时地清除它。我使用pinvoke的控制台。这是我为处理此问题而编写的一个小包装类。usingSystem;usingS