草庐IT

winforms-interop

全部标签

c# - 是否可以使用 WinForms 中的设计器从不同的项目访问资源?

我有一个相当大的解决方案,里面有很多项目。理想情况下,我想创建一个资源项目,其中包含我在整个应用程序中需要的所有嵌入式图标。我读过人们通过代码引用它们的文章,但是是否可以在设计器中访问该项目的资源?换句话说,我想在设计器中单击窗体的BackgroundImage属性时选择资源。如果不是,在尝试将我的资源与我的主项目分离时,我应该考虑哪种架构?每次修改一两行代码就释放一个100mb的可执行文件可能不是一个明智的主意。 最佳答案 我找到了一种在多个项目之间共享资源文件并保持VSDesigner兼容性(适用于VS2012)的工作方法,它并

c# - 可以在 Winforms TextBox 上设置背景图像吗?

是否可以在C#中更改Windows窗体TextBox的背景图像?没有BackgroundImage属性。我应该以某种方式覆盖Paint方法吗? 最佳答案 这是不可能的。如果您尝试通过覆盖TextBox并在构造函数中调用SetStyle(ControlStyles.UserPaint,true)以便您可以覆盖OnPaintBackground并绘制图像,您将会遇到一些粗鲁的惊喜。回退到传统渲染模式只是其中之一。TextBox可以追溯到Windows的早期,那时它仍然必须在386SUX硬件上运行。为了在如此有限的硬件上合理工作,它犯下的

c# - 如何在 WinForms 中将字典绑定(bind)到列表框

可以将字典绑定(bind)到列表框,使列表框和成员属性保持同步吗? 最佳答案 varchoices=newDictionary();choices["A"]="Arthur";choices["F"]="Ford";choices["T"]="Trillian";choices["Z"]="Zaphod";listBox1.DataSource=newBindingSource(choices,null);listBox1.DisplayMember="Value";listBox1.ValueMember="Key";(无耻地摘s

C# Winforms - 更改鼠标的光标图标

如何将光标图标更改为桌面上通常显示的“忙碌图标”?我如何设置动画文件(.gif、.ani)而不是光标? 最佳答案 尝试执行以下操作:System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.WaitCursor;更多信息请访问CursorsClassdocumentation光标类不支持GIF文件或动画光标(.ANI)。您可以加载自定义光标做Cursor.Current=newCursor("C:\\ic.cur");也许您可以使用类似Microangelo的工

c# - 我们如何在winform中的datagridview中进行分页

我想在窗口窗体的数据GridView中每页显示10条记录,用户必须单击下一步按钮才能显示接下来的10条记录。DataGridview中是否有某些属性,或者我是否需要创建自定义控件。我需要做什么来实现这个目标。 最佳答案 这是一个简单的工作示例,其中BindingNavigatorGUI控件使用BindingSource反对通过将其DataSource设置为IListSource的自定义子类来识别分页符.(感谢thisanswer关键思想。)当用户单击“下一页”按钮时,BindingNavigator触发bindingSource1_

c# - 如何在 WinForms 中对 URL 进行编码?

我正在创建一个Windows应用程序,我需要传递一个编码的URL。但我不确定如何在WinFormsC#中对其进行编码? 最佳答案 如果您需要对查询字符串的数据进行URL编码,您可以使用Uri.EscapeDataString或者,如果您不介意引用System.Web,HttpUtility.UrlEncode:varrawString=@"this&that";varuriEncoded=Uri.EscapeDataString(rawString);varhttpUtilityEncoded=HttpUtility.UrlEnco

c# - Winform 自定义控件 : DesignMode doesn't return true whereas in Design Mode

我在这里了解了DesignModeHowtorefreshawinformcustomcontrolatdesigntimeafterchangingaproperty但是当我在我的自定义控件的构造函数中使用它时,它永远不会返回true,所以当我拖放我的自定义控件时它总是显示max=200,这是怎么回事?if(this.DesignMode){this.Min=0;this.Max=100;}else{this.Min=0;this.Max=200;}this.LabMin.Text=this.Min.ToString();this.LabMax.Text=this.Max.ToStr

c# - Winforms c# - 将焦点设置到 TabPage 的第一个子控件

假设我有一个Textbox嵌套在TabControl中。加载表单时,我想关注那个Textbox(默认情况下焦点设置到TabControl)。在表单的Load事件中简单地调用textbox1.focus()似乎不起作用。我已经能够通过执行以下操作来聚焦它:privatevoidfrmMainLoad(objectsender,EventArgse){foreach(TabPagetabinthis.tabControl1.TabPages){this.tabControl1.SelectedTab=tab;}}我的问题是:有没有更优雅的方法来做到这一点? 最佳

c# - 在无边界 WinForm 上投影

我正在尝试像第一张图片一样在整个窗体周围放置阴影,只是那是WPF,而不是WinForm。现在我想在winform上放置相同的阴影。这就是我想要的......不是这个.. 最佳答案 在WinForms中,您可以覆盖表单的protectedCreateParams属性并添加CS_DROPSHADOW标志类样式。例如:publicclassShadowedForm:Form{protectedoverrideCreateParamsCreateParams{get{constintCS_DROPSHADOW=0x20000;CreateP

c# - WinForm UI 组件层顺序

当我们在WinForms中添加任何UI或容器时,后添加的组件覆盖了较早添加的组件,我们可以说它在更高的层中。如何在添加组件后更改图层顺序或组件顺序? 最佳答案 当你在同一个地方放置多个控件时,一个会在上面,另一个会在下面。通常这是一个小错误的结果,比如不正确地使用锚定和停靠功能来创建可调整大小的表单。但是,在某些情况下,您可能希望重叠控件以获得特定效果。当控件重叠时,z-index决定哪个控件在顶部。本质上,每个控件都存在于其自己不同的编号层中。具有z-index层1的控件将出现在z中的控件上方-index层2,如果它们重叠。通常,