Articles of winforms

在Raspberry Pi的Linux环境中出现Windows Forms错误

我已经开发了完全在Windows中工作的完整应用程序。 我现在已经在Linux(Debian on RPi)上安装了mono,并且正在执行该应用程序。 第一种forms(login表单)加载完全正常。 在此表单上input用户详细信息,如果详细信息正确,则应closures该表单并打开下一个表单。 下面的代码是从login表单,并执行一次我按“login”: this.Hide(); Entry_System fm = new Entry_System(); fm.ShowDialog(); this.Show(); 但是,在Linux中,表单只是closures并发生以下错误: System.TypeLoadException:发生types加载exception。 System.Windows.Forms.Control.OnClick(System.EventArgs e)[0x00000] in:System.Windows.Forms.Button.OnClick(System.EventArgs e)中的0; System.Windows.Forms中的[0x00000] in:0 .ButtonBase.OnMouseUp(System.Windows.Forms.MouseEventArgs mevent)[0x00000] in:0 System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs mevent)[0x00000] in:0 at System.Windows .Forms.Control.WmLButtonUp(System.Windows.Forms.Message&m)[0x00000] in:0 System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message&m)[0x00000] in:0 at System .Windows.Forms.ButtonBase.WndProc(System.Windows.Forms.Message&m)[0x00000] in:0 at System.Windows.Forms.Button.WndProc(System.Windows.Forms.Message&m)[0x00000] in:0 System.Windows.Forms.Control + ControlWindowTarget.OnMessage(System.Windows.Forms.Message&m)[0x00000] in:0 at System.Windows.Forms.Control + ControlNativeWindow.WndProc(System.Windows.Forms.Message&m) System.Windows.Forms.NativeWi中的<filename unknown>中的[0x00000]:0 ndow.WndProc(IntPtr hWnd,Msg msg,IntPtr […]

如何防止Mono垂直(在Linux上)在WinForms应用程序中扩展窗口?

我认为这个标题是相当具有描述性的。 我的WinForms应用程序运行在单声道,但有一个恼人的问题:我的应用程序中的所有窗口被垂直拉伸约1.5倍。 所以我的方形button和窗口变成矩形。 只有大小是可笑的字体大小不是。 所以布局上有很大的差距。 有没有人有想法如何解决这个问题? 在单声道的错误?

Linux / OSX中的C#GUI

到目前为止,我一直在使用emacs + csharp-mode + mcs进行C#开发,并且已经成功模拟了一个IDE。 现在我必须开发一些Windows窗体应用程序。 是否有像VS中的简单GUI生成器的Linux工具? 那么OS X呢?

在Mono上使用system.windows.forms在Linux上开发

我一直在使用Ubuntu 10.04和最近11.10。 我有单声道开发安装thro synaptics或Ubuntu的软件中心。 我一直在做Vista上的Visual Studio的C#和Windows窗体编程。 但是,我从来没有成功地使system.drawing或system.windows.forms在我的单声道在Ubuntu上开发。 单声道网站宣布system.windows.forms随我的单声道安装一起安装。 怎么可能,我找不到? 单一网站甚至没有链接,我下载system.windows.forms库。 我需要在Linux上编写c#+ winforms应用程序,但是我将在Windows Vista上部署这些应用程序。 尽pipe我在双启动的ubuntu / vista上安装了visual studio,但我是一个multithreading的多任务生物,我将同时执行windows .NET和linux编程。 因此,我必须在Ubuntu上做我的多任务处理。 不,不build议cygwin。 我找不到任何system.windows.forms工具单声道在我的Ubuntu上开发。 我只能看到GTK#工具,我对GTK不感兴趣。 请指教。 我必须分别下载用于Linux的窗体库吗? 是否有特殊的步骤,我不得不作出的ubuntu单声道安装某种程度上不能做,为了有winforms工具可用单声道开发? [顺便说一下,请避免政治上的问题/陈述为什么我在Linux上使用Windows技术,反之亦然]

为什么在WinForms(.NET)中隐藏一个拥有的窗口切换应用程序?

我有一个覆盖屏幕的应用程序窗口,有几个小工具窗口默认隐藏,他们的“所有者”属性设置为这个主窗口。 当我显示一个工具窗口并点击其中一个button时,它会隐藏自身以显示另一个窗口。 当我隐藏另一个工具窗口Windows开关的应用程序,就像当你按ALT +标签。 唯一的方法是在closures(隐藏)工具窗口之前单击主应用程序窗口。 为什么应用程序切换发生,以及如何防止这种情况? 那么我可以明确地告诉那些窗口将主窗口前面隐藏(我还没有尝试过,但我不喜欢这样做)。只有当该窗口上的所有者属性设置,以防止他们从主窗口后面显示。 ps:这个全屏应用程序是一个游戏,这些窗口是菜单和设置屏幕等…

Windows C ++子窗口没有响应

使用混合的托pipe/非托pipeC ++(Visual Studio 2008)我从DirectX应用程序打开一个Windows窗体子窗口。 奇怪的东西确实,但它的作品,主要是。 如果我使用showDialog()子窗口完美地工作,但显然主应用程序停止运行(直到孩子closures)。 如果我用show()生活是好的,但是孩子有微妙的问题。 例如,文本框工作并接受input,但不能再使用Tab键移动到不同的控件。 助记符( Alt +热键)也停止工作。 我是一个巨大的键盘快捷键风扇,所以这是非常烦人的。 更糟糕的是,我甚至不知道如何谷歌这个问题。 任何帮助将不胜感激。

如何点击“是”button,以编码方式申请应用程序

我有一个代码 private const int WM_CLOSE = 16; private const int BN_CLICKED = 245; [DllImport("User32.dll")] public static extern Int32 FindWindow(String lpClassName, String lpWindowName); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int SendMessage(int hWnd, int msg, int wParam, IntPtr lParam); [DllImport("user32.dll", SetLastError = true)] public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle); [DllImport("user32.dll", […]

date时间select器最大值validation消息不在Windows Server 2003中工作

我有一个Windows应用程序,我有一个validation来检查date时间select器控制,不select更大的最大值,并显示一条消息,“你不能select”。 我已经validation和显示消息在ValueChanged事件和其在Windows 7环境中工作正常,但是当我在Windows Server 2003中运行此应用程序date值更改和消息框显示重复无限次。 所以请build议任何更好的想法来validationdate更改在Windows 7和Windows Server 2003中运行它。 My Code In load event public void LoadHistoricData() { // Set its maximum value. } private void dtpHInputDate_ValueChanged(object sender, EventArgs e) { MessageBox.Show("You can't select greater than maximum date"); } also i have used, private void dtpHInputDate_CloseUp(object sender, EventArgs e) { MessageBox.Show("You can't select greater than […]

如何在Winforms中dynamic添加graphics行

我在窗体中dynamic显示两行,并且想要垂直移动行。 我试图移动使用mousemove事件,但它正在移动两条线在一起。 那么是否有可能在表单上单独移动dynamic添加的行? 这是我的代码 Graphics g; int Y = 250; public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { } private void Form2_Paint(object sender, PaintEventArgs e) { g = e.Graphics; g.DrawLine(Pens.Red, new Point(0, Y), new Point(1500, Y)); g.DrawLine(Pens.LimeGreen, new Point(0, Y+50), new Point(1500, Y+50)); } public void Form2_MouseMove(object sender, MouseEventArgs e) { […]

使用DLL名称获取表单数据

我正在创build一个应用程序的工具,打开一些窗体来获取用户的信息,我的工具应该自己处理这些Windows窗体,而无需用户的交互。 我已经启动了一个事件来获取打开的窗体的过程,当它打开时由以下代码: mgmtWtch = new ManagementEventWatcher("Select * From Win32_ProcessStartTrace"); mgmtWtch.EventArrived += WatchManagementEvent; mgmtWtch.Start(); 显示的窗口有我想单击的确定button,我不知道如何做这个动作。 而我可以从这个事件得到的参数是 EventArrivedEventArgs e 我的问题是我怎样才能通过这个事件处理程序单击确定button? 提前致谢。