Tag: winforms

最顶层的forms,点击“通过”可能吗?

感谢您之前的答案,这些答案使我能够完成在鼠标坐标中显示大红十字的基本工具,以便更加明显。 红十字是透明forms的透明背景图像。 问题是你无法点击,因为它的最顶层和窗体的中心实际上是鼠标xy。 有没有什么方法可以使这个可用,以便交叉仍然显示在光标上但“可点击”通过?

DataGridView复选框列 – 值和function

我在C#表单中为DataGridView添加了一个复选框列。 该function需要是动态的 – 您选择一个客户并显示他们可以维修的所有物品,并选择您希望这次服务中的哪一个。 无论如何,代码现在将添加一个chckbox到DGV的开头。 我需要知道的是: 1)如何制作它以便默认“检查”整列? 2)当我点击DGV正下方的按钮时,如何确保仅从“已检查”行获取值? 这是插入列的代码: DataGridViewCheckBoxColumn doWork = new DataGridViewCheckBoxColumn(); doWork.HeaderText = “Include Dog”; doWork.FalseValue = “0”; doWork.TrueValue = “1”; dataGridView1.Columns.Insert(0, doWork); 接下来呢? 任何帮助将不胜感激!

由于SystemEvents.OnUserPreferenceChanged事件,WinForms应用程序挂起

我一直在处理我的客户端安装中的一个奇怪的应用程序挂起。 在尝试了几件事之后,我得出的结论是,如果没有转储,它将无法工作。 所以我在挂机时从我的一个客户那里收了一个转储。 我必须注意,它只发生在我的安装中而不是我的开发计算机中。 在我的转储中,我看到SystemEvents.OnUserPreferenceChanged事件导致我的UI线程阻塞等待线程,这不再是消息。 在这里和谷歌搜索后,我发现有些人我们也遇到了这个问题。 我上下我的代码,看看我们是否有机会在非UI线程上创建控件或表单,但没有运气。 这是我的!clrstack 0012ee5c 7c90e514 [HelperMethodFrame_1OBJ: 0012ee5c] System.Threading.WaitHandle.WaitOneNative(Microsoft.Win32.SafeHandles.SafeWaitHandle, UInt32, Boolean, Boolean) 0012ef08 792b68af System.Threading.WaitHandle.WaitOne(Int64, Boolean) 0012ef24 792b6865 System.Threading.WaitHandle.WaitOne(Int32, Boolean) 0012ef38 7b6f1a4f System.Windows.Forms.Control.WaitForWaitHandle(System.Threading.WaitHandle) 0012ef4c 7ba2d68b System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control, System.Delegate, System.Object[], Boolean) 0012efec 7b6f33ac System.Windows.Forms.Control.Invoke(System.Delegate, System.Object[]) 0012f020 7b920bd7 System.Windows.Forms.WindowsFormsSynchronizationContext.Send(System.Threading.SendOrPostCallback, System.Object) 0012f038 7a92ed62 Microsoft.Win32.SystemEvents+SystemEventInvokeInfo.Invoke(Boolean, System.Object[]) 0012f06c 7a92dc8f Microsoft.Win32.SystemEvents.RaiseEvent(Boolean, System.Object, System.Object[]) 0012f0b8 7a92e227 Microsoft.Win32.SystemEvents.OnUserPreferenceChanged(Int32, IntPtr, IntPtr) […]

为什么WinForms标签不希望透明的原因?

为什么我不能将Label的BackColor设置为Transparent? 我以前做过,但现在它只是不想…… 我创建了一个新的UserControl,为它添加了一个进度条和一个标签。 当我将标签的BackColor设置为透明时,它仍然是灰色= /为什么这样? 我想要的是将标签放在进度条的顶部,以便其文本“在”进度条中“…

不规则形状的Windows窗体(C#)

最简单的方法是什么? 托管代码是否可能? 谢谢你的时间。

在运行时更改语言的正确方法

在运行时更改Form语言的正确方法是什么? 使用这样的递归手动设置所有控件 将语言选择保存到文件>重新启动应用程序>在InitializeComponent();之前加载语言选项InitializeComponent(); 使用Form构造函数替换active的实例(如果这是可能的话) 还有别的 关于这个问题有很多半成文,但没有一个能提供真正的答案,说明什么是正确的方法呢? 更新: 澄清我的问题: 做这样的事情: public Form1() { Thread.CurrentThread.CurrentUICulture = new CultureInfo(“de”); this.InitializeComponent(); } 工作正常,我的所有控件和资源中的其他所有内容都可以正确转换。 做类似的事情: private void button1_Click(object sender, EventArgs e) { Thread.CurrentThread.CurrentUICulture = new CultureInfo(“en”); } 什么都不做,Form保留在我在InitializeComponent();之前设置的语言中InitializeComponent();

如何使用WebBrowser控件以编程方式更改打印机设置?

我终于想出了如何在不提示用户或显示IE窗口的情况下打印转换后的XML ,但现在我需要指定一些副本以及可能的其他打印机设置。 有没有办法以编程方式更改WebBrowser控件上的打印机设置? 有问题的代码: private static void PrintReport(string reportFilename) { WebBrowser browser = new WebBrowser(); browser.DocumentCompleted += browser_DocumentCompleted; browser.Navigate(reportFilename); } private static void browser_DocumentCompleted (object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser browser = sender as WebBrowser; if (null == browser) { return; } browser.Print(); browser.Dispose(); }

从C#WInForm上的每个组件捕获鼠标事件

我的WinForm C#应用程序上的MouseEvents有问题。 我希望鼠标点击我的应用程序,但我不想在每个子组件中放置一个监听器既不使用Windows鼠标挂钩。 在Flash上​​我可以在舞台上放置一个监听器来获取电影上的所有MouseEvent。 C#上有这样的东西吗? 全局MouseListener? 编辑:我从IMessageFilter和使用Application.AddMessageFilter创建此类。 public class GlobalMouseHandler : IMessageFilter{ private const int WM_LBUTTONDOWN = 0x201; public bool PreFilterMessage(ref Message m){ if (m.Msg == WM_LBUTTONDOWN) { // Do stuffs } return false; } } 并将此代码放在需要监听全局点击的控件上: GlobalMouseHandler globalClick = new GlobalMouseHandler(); Application.AddMessageFilter(globalClick); 感谢您的帮助!

DataGridView keydown事件无法在C#中工作

当我在单元格内编辑文本时,DataGridView keydown事件不起作用。 我正在分配快捷键Alt + S来保存数据,它在单元格不处于编辑模式时起作用,但如果它处于编辑模式下面,则代码不起作用 private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == (Keys.Alt | Keys.S)) { //save data } }

无法更新.mdf数据库,因为数据库是只读的(Windows应用程序)

我在C#中创建了一个数据库窗口应用程序。 我的应用程序在Windows XP上成功运行,但在Vista或Windows 7系统上无法正常执行。 我的应用程序显示类似的消息 无法更新.mdf数据库,因为数据库是只读的 任何人都可以给我一个解决方案吗?