Tag: winforms

是否可以在Windows窗体中“沙盒化”IE?

假设我在Windows窗体中有一个webbrowsercontrol,用户从表单登录到一个安全的站点。 如果用户单独打开IE,它也会显示它们已登录。是否可以隔离Windows窗体的IE实例?

设计表单以在Windows CE上处理不同的分辨率和宽高比

我有一个在Compact Framework上运行的.NET 2.0应用程序。 它有许多不同的forms,最初都是为在具有特定屏幕分辨率的特定设备上运行而设计的。 我现在希望让这个应用程序在其他一些具有非常不同的屏幕分辨率的设备上运行(有些具有完全相反的宽高比,其中屏幕现在比它的宽度更高)。 我的问题是如何在其他屏幕上更改表单以使其看起来更好? 这与在完整框架上设计表单略有不同,因为我必须设计这些表单以占据整个屏幕,因为屏幕非常小。 我曾考虑为每种类型的屏幕方向创建单独的表单(例如MyForm_Wide.cs,MyForm_Tall.cs等)。 我希望能够重用非设计器生成的代码,该代码包含许多与UI控件绑定的业务逻辑。 也许我可以某种方式使用部分类来实现这一点(例如,MyForm.cs以某种方式被编译成MyForm_Wide.Designer.cs等)。 我真的想避免每个屏幕方向的特定编译版本。 我想到的另一种方法是尝试根据确定的屏幕大小在运行时重新排列一些控件。 你们有什么感想?

引用其他类中的Windows窗体元素

我是Windows Form编程的新手,我遇到了一个问题。 我有一个窗体Form1 ,带有一个文本框: tbx_Log 。 在同一个项目的另一个类中,我想写一些东西到日志文本框,但我不能在该类中引用tbx_Log。 我怎样才能做到这一点?

c #windows表单Tab顺序

我在C#项目中有一个窗口表单,用于保存学生信息。 我抓住了这张照片: 我想按顺序添加连续顺序的数据,但是当我向Surname文本框输入数据时,TAB按钮跳转到电子邮件文本框,然后跳转到电话号码文本框,最后跳转到出生日期DateTimePicker。 除了这些文本框之外,我在窗体上将所有控件的TabStop属性设置为“False”。 我通过属性部分安排了他们的TabOrder,如下所示0,1,2 ..如我所愿。 但是正如我上面写的那样顺序。 然后我通过菜单条上的“查看”打开了Tab Orderfunction..我点击了我想按顺序使用的所有控件,但没有用。 表单和Tab按钮与以前一样。 我抓住了Tab Orderfunction图片如下: 我现在该怎么办?

从闭源第三方Win32应用程序中的窗口捕获数据

我打算创建一个C#Windows Forms应用程序作为第三方Win32应用程序的扩展,但我现在对如何执行此操作感到困惑。 我得到的最远的是知道它涉及Win32 Hooking,并且有一个名为EasyHook的开源项目应该允许我这样做。 我想知道如何从文本框中获取文本或从第三方Win32应用程序中的控件获取其他数据。 当用户按下按钮时,将从外部应用程序的运行窗口捕获控件中的文本/数据。 我想问题可归纳如下: 当用户点击某个按钮时,如何确定要挂钩的事件? 如何在单击按钮时获取Win32控件显示的值?

在C#中将像素转换为英寸,反之亦然

我希望将像素转换为英寸,反之亦然。 我知道我需要DPI,但我不知道如何获取这些信息(例如我没有Graphics对象,所以这不是一个选项)。 有办法吗?

如何将程序集加载到内存中并执行它

这就是我在做的事情: byte[] bytes = File.ReadAllBytes(@Application.StartupPath+”/UpdateMainProgaramApp.exe”); Assembly assembly = Assembly.Load(bytes); // load the assemly //Assembly assembly = Assembly.LoadFrom(AssemblyName); // Walk through each type in the assembly looking for our class MethodInfo method = assembly.EntryPoint; if (method != null) { // create an istance of the Startup form Main method object o = assembly.CreateInstance(method.Name); // invoke the […]

在C#中获取当前关注的文本框

我有两个文本框和一个按钮。 当我按下按钮时,我想知道我当前的插入符号(两个框中的任何一个)。 我需要知道在哪里插入某个文本。 我试过textbox1.Focused ; textbox1.enabled但都没有用。 我该如何实现呢? 谢谢

ILMerge +本地化资源程序集

我正在使用ILMerge从包含1个exe和2个资源dll的项目中创建单个程序集应用程序: \ BIN \调试\ test.exe的 \ BIN \调试\ NL-BE \ test.resources.dll \ BIN \调试\ FR-FR \ test.resources.dll 这是一个简单的测试项目,有1个表单(Form1.cs),所以没什么特别的。 我的目标是使用工作资源管理器创建一个单独的程序集应用程序(我已阅读ILMerge和本地化资源程序集以及单程序集多语言Windows窗体部署(ILMerge和附属程序集/本地化) – 可能吗?有关如何执行的信息这个)。 编译项目后,我使用以下命令行参数运行ILMerge: ilmerge /log:test.txt /target:winexe /copyattrs /allowdup /out:test_merged.exe “C:\projectdir\bin\Debug\test.exe” “C:\projectdir\bin\Debug\fr-FR\test.resources.dll” “C:\projectdir\bin\Debug\nl-BE\test.resources.dll” 如果我用Reflector检查合并程序集的内容,我在资源树节点下看到以下内容: test.Form1.fr-FR.resources test.Form1.fr-FR.resources test.Form1.resources test.Properties.Resources.resources 而不是fr-FR和nl-BE资源,我有2倍的fr-FR资源。 这是因为资源dll的名称相同吗? 结果是我只能在运行时获取fr-FR资源。 有任何想法吗 ? 更新(日志文件内容):(注意:二进制文件以“loc_”为前缀,为了清楚起见,我在之前的post中将它们删除了) ILMerge version 2.10.526.0 Copyright (C) Microsoft Corporation 2004-2006. All rights reserved. ILMerge /log:loc_test.txt […]

我在C#中调试时为什么会得到一个空白表单?

我刚刚摆脱了所有编译器错误。 其中一个问题是我不小心重命名了视觉forms本身,而不是我GUI上的一个单独的文本框。 当我去改变我在代码中弄乱的内容时,它似乎再次起作用。 但是,每当我按F5进行调试时,我会得到一个较小的空白窗口作为我的GUI,而不是我在Visual Studio中设计的窗口。 有什么建议? 这是我的主要(Forms)类代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace beehive1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); Worker[] workers = new Worker[4]; workers[0] = new Worker(new string[] { “Nectar collector”, “Honey Manufacturing” }); workers[1] = […]