Tag: winforms

C#Winforms线程:调用Closed Form

以下代码说明了我的困境。 代码创建一个处理内容的后台线程,然后使用结果调用UI线程。 如果后台线程在窗体关闭后调用窗体上的Invoke,它可能会抛出exception。 它在调用Invoke之前检查IsHandleCreated,但是在检查之后表单可能会关闭。 void MyMethod() { // Define background thread Action action = new Action( () => { // Process something var data = BackgroundProcess(); // Try to ensure the form still exists and hope // that doesn’t change before Invoke is called if (!IsHandleCreated) return; // Send data to UI thread for processing […]

如何从DataGridView中的行获取DataRow

我正在使用数据绑定Windows窗体DataGridView 。 如何从DataGridView的用户选定行转到作为其源的DataTable的DataRow ?

在winform中嵌入winform(c#)

是否可以在另一个窗体中嵌入窗体? 我在Visual Studio中创建了一个Windows窗体及其所有相关行为。 我现在想要创建另一个包含选项卡视图的窗体,我想将第一个窗体窗体嵌入到选项卡视图中。 这可能吗?

如何处理GetDataPresent让它接受所有派生类型

我正在使用drgevent.Data.GetDataPresent来确定拖动的组件是否可接受。 我有一个问题,就是我想接受一个特定的类型,比如SomeType和从中派生的所有类型。 似乎GetDataPresent不支持此类要求。 任何的想法?

为BindingListView 启用LINQ

Andrew Davies在sourceforge上创建了一个名为BindingListView的优秀小类,它基本上允许您将集合绑定到DataGridView同时支持排序和过滤。 将DataGridView绑定到普通List不支持排序和过滤,因为List没有实现正确的接口。 该类工作得很好,解决了我的UI问题。 但是,如果我可以使用LINQ迭代集合,那将是非常棒的,但我只是不确定如何设置它。 源代码可以在这里下载。 谁能帮我吗?

如何在PictureBox上检测按住鼠标按钮?

我需要在鼠标位于PictureBox上方并且已经单击并按住鼠标按钮时触发事件。 问题: MouseDown和MouseEnter事件处理程序不能很好地协同工作。 例如,一旦点击并按住鼠标按钮,C#将触发MouseDown事件处理程序,但是当光标移动到PictureBox上时,MouseEnter事件不会触发,直到鼠标按钮被释放。

C#中的combobox和自动完成

我在combobox中有自动完成选项的小问题。 一切都正常,除了我想要工作不同:) 当我开始输入combobox时,autusuggest以我喜欢的方式工作: 但是,当我第一次打开combobox,然后开始输入我得到类似的东西: 更有甚者,我不能从autosuggestcombobox中选择项目,只能从此列表中选择。 AutocompleteMode是SuggestAppend 我希望在第一张图片上有自动提示,在图片2的情况下,第一个combobox列表应该以某种方式关闭..

C#Panel autoscroll不起作用

我有一个带有图片框的面板。 当图片框的内容太大时我想要滚动条。 我在面板上将autoscroll设置为true。 但是当图片框的内容较大时,面板/图片框的高度不会显示滚动条。 我的面板固定在顶部,左侧,底部,右侧。 图片框也固定在顶部,左侧,底部,右侧。

使ListBox项具有与项文本不同的值

我想要一个装满物品的ListBox 。 虽然,每个项目应该有不同的值。 因此,当用户选择项目并按下按钮时,将调用将使用选择项目具有的值的方法。 我不想向用户透露项目值。 编辑:这不适用于ASP.NET,它适用于Windows窗体应用程序。 我只是认为HTML示例很容易阅读。 我从HTML获得灵感: Male Female 这也允许我使用与用户看到的值不同的值。

访问冲突:尝试读取或写入受保护的内存

我有一个ac#(。net 4.0)winforms应用程序,每天每天工作8小时,在XP SP 3上运行。它在大多数情况下工作正常,有时持续数月。 然后它似乎陷入了一个糟糕的咒语,并且每天一次,连续几天,在不同的时间,出现访问冲突exception。 我已经尝试查看转储文件,并捕获访问冲突exception以查看堆栈; 无论哪种方式,我得到几乎相同的堆栈: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam) at System.Windows.Forms.NativeWindow.DefWndProc(Message& m) at System.Windows.Forms.ToolTip.WndProc(Message& msg) at System.Windows.Forms.ToolTip.ToolTipNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& […]