草庐IT

c# - 为什么公司仍在使用 Windows 窗体和 WPF 应用程序而不是 Web 应用程序?

为什么公司仍在使用WindowsForms和WPF应用程序而不是Web应用程序?我不想讨论。我只想要原因,因为最近几天我对我的工作(WindowsForms/WPF)缺乏信心,我认为这是改变技术/工作的好方法。 最佳答案 Windows应用程序具有最好的用户界面和功能,但它们可供最少的受众使用,而Web应用程序具有最有限的用户界面功能,但它们是可供最广泛的受众使用。这取决于公司来决定是web还是Windows应用程序,他们必须为他们的发展开发... 关于c#-为什么公司仍在使用Windo

c# - 使窗体的背景透明

如何使我的表单背景透明?在C#中可以吗?提前致谢! 最佳答案 您可以将表单的BackColor设置为不常见的颜色(例如Color.Magenta),然后将表单的TransparencyKey属性设置为相同的颜色。然后,将FormBorderStyle设置为None。当然,这只是快速简便的解决方案。控件的边缘很难看,您必须不断更改添加的新控件的背景颜色(如果它们是按钮或类似的东西)以及一大堆其他问题。这实际上取决于您想要实现的目标。它是什么?如果你想做一个小部件之类的东西,有更好的方法。如果您需要圆角或自定义背景,还有更好的方法。因此

c# - 从另一个子窗体打开一个子窗体并将 MDI 设置为父窗体 - 怎么办?

我有一个MDI表单。在此MDI表单中,我可以使用以下方法打开一些子表单:这是在MainForm中Form1f1=newForm1;f1.MdiParent=this;//thisreferstoMainForm(parent)f1.Show();这按预期工作!但是现在,当我处于子窗体(Form1->f1)时,我想打开另一个窗体作为MainForm的子窗体,但是当我使用this关键字时它将引用f1。如何在f1中打开新窗体并将其MdiParent设置为MainForm? 最佳答案 尝试从以下位置分配第一个child的父表:Form2f2

c# - 在 Windows 窗体中托管 IDeskBand

我试图在我自己的WinForm中显示Windows任务栏中的地址工具栏。我可以获得地址工具栏的CLSID({01E04581-4EEE-11d0-BFE9-00AA005B4383}),并且可以获得对它的IDeskBand引用。但是……然后呢?GuidbandCLSID=newGuid("{01E04581-4EEE-11d0-BFE9-00AA005B4383}");TypebandType=Type.GetTypeFromCLSID(bandCLSID);IDeskBanddeskband=(IDeskBand)Activator.CreateInstance(bandType);

c# - WinApp 窗体崩溃,没有任何错误或异常 .Net

我的WinAppForm程序有问题,该程序包含带有WebBrowser控件DLL(GeckoFX)的选项卡控件。我的应用程序在运行时关闭,没有任何异常或任何东西。它可能在几分钟后或最多10分钟后发生。在visualstudio中,我看到应用程序以代码0终止。任何东西。在program.cs中,我捕获了所有这些未处理的异常`//AddtheeventhandlerforhandlingUIthreadexceptionstotheevent.Application.ThreadException+=newSystem.Threading.ThreadExceptionEventHandl

具有自定义边框和圆边的 C# 窗体

这个问题在这里已经有了答案:HowtoDrawaRoundedRectanglewithWinForms(.NET)?(6个答案)关闭4年前。我正在使用此代码制作我的表单(FormBorderStyle=none)具有圆角边缘:[DllImport("Gdi32.dll",EntryPoint="CreateRoundRectRgn")]privatestaticexternIntPtrCreateRoundRectRgn(intnLeftRect,//x-coordinateofupper-leftcornerintnTopRect,//y-coordinateofupper-lef

c# - Visual C# 窗体右键单击按钮

我想在VisualC#中制作一个扫雷类型的游戏,我想在我右键单击和左键单击按钮时发生不同的事情,我该怎么做?我试过这段代码,但它只记录左键点击:privatevoidbutton1_MouseClick(objectsender,MouseEventArgse){if(e.Button==System.Windows.Forms.MouseButtons.Left){MessageBox.Show("Left");}if(e.Button==System.Windows.Forms.MouseButtons.Right){MessageBox.Show("Right");}}

c# - Windows 窗体 DPI 缩放

我的应用程序在100%DPI设置下看起来不错,但是当用户选择不同的(125%或150%)时,单词不适合容器。我试着用我在这里找到的解决方案来解决这个问题:Detectwindowsfontsize(100%,125%,150%)这是:this.AutoScaleMode=AutoScaleMode.Dpi;它修复了150%的设置(让它有点模糊,但没关系),不幸的是,它没有为125%设置相同的设置,该设置在应用程序打算运行的PC上使用。是否有一些简单的解决方法,或者我是否必须手动重新排列每个表单? 最佳答案 CreatingaDPI-

c# - 我什么时候可以处理 IDisposable WPF 控件,例如Windows 窗体主机?

WPF控件WindowsFormsHost继承自IDisposable。如果我有一个包含上述某些控件的复杂WPF可视化树,我可以使用什么事件或方法在关闭期间调用IDispose? 最佳答案 在应用程序关闭的情况下,您无需执行任何操作即可正确处理WindowsFormsHost。由于它派生自HwndHost,因此在Dispatcher关闭时处理处理。如果您使用Reflector,您会看到在初始化HwndHost时它会创建一个WeakEventDispatcherShutdown。如果您在对话框中使用它,我建议的最好的办法是覆盖OnCl

C#:将一个类拆分成多个文件(带窗体)

使用:C#、VS2008我有以下主窗体类:[Main.cs]namespaceServer{publicpartialclassPipeServerform:System.Windows.Forms.Form{...}}但是又大又长,而且包含GUI+逻辑代码。所以我将类分成多个文件以便于管理,并创建了这个只包含逻辑细节的文件:[DoCommands.cs]namespaceServer{publicpartialclassPipeServerform:System.Windows.Forms.Form{...}}这有效...但是!VS2008项目中的“DoCommands.cs”文件现