Articles of winforms

将水平线放在combobox中或列出C#中的控件

回答链接:( 我可以在combobox或列表控件中放置水平线吗? ) 我在C#(VS 2010)Windows窗体中创建了一个代码,但它需要改进。 项目前面的符号“ – ”会在项目后面显示一条线。 我在组合项集合中的输入如下: -All Names Henry (Father) -Nancy (Mother) Sapphire Vincent 我的组合显示如下: All Names —————— Henry (Father) Nancy (Mother) —————— Sapphire Vincent 虽然我的代码是: public Form1() { InitializeComponent(); comboBox1.DrawMode = DrawMode.OwnerDrawFixed; comboBox1.DrawItem += new DrawItemEventHandler(cmb_Type_DrawItem); } void cmb_Type_DrawItem(object sender, DrawItemEventArgs e) { e.DrawBackground(); string a = comboBox1.Items[e.Index].ToString(); if (comboBox1.Items[e.Index].ToString().Substring(0, 1) […]

升级WinForms SQLite数据库技术

我一直在研究数据库的升级程序,特别是SQLite类型的升级程序。 我被困在一个程序如何知道,“嘿……这个表不存在,让我们创建它!” 或“嘿,它确实存在,但它的三个版本落后,让我们更新它!” 我的意思是,我可以编写特定于每个表的每个版本的代码(基本上列出了应该包含哪些列…),然后将它全部转储到每个表的大量if语句或类似的东西,但那会疯了。 -`REALLY INSANE。 (我会包含那些代码,所以你们可以指出如何改进,但我已经知道这肯定不是正确的方法吗?) – 实际使用什么技术来升级数据库? 我想详细说明: a)检查表是否存在的最佳技术是什么? b)程序如何知道表后面有多少个版本? – 这适用于SQLite 3,用于桌面应用程序。

在Windows登录c#之前打开表单

我有一个#计算机锁定系统,我试图让它在你登录计算机之前显示我的解锁表格。 我知道这是可能的,因为我之前在另一个程序上看过它。

实现大文本文件阅读器的最佳策略

我们有一个应用程序将其处理步骤记录到文本文件中。 在实施和测试期间使用这些文件来分析问题。 每个文件的大小最多为10MB,最多包含100,000个文本行。 目前,通过打开文本查看器(Notepad ++ etc)并根据问题查找特定字符串和数据来完成对这些日志的分析。 我正在构建一个有助于分析的应用程序。 它将使用户能够读取文件,搜索,突出显示特定字符​​串以及与隔离相关文本相关的其他特定操作。 这些文件不会被编辑! 在玩一些概念时,我立即发现TextBox(或RichTextBox)不能很好地处理大文本的显示。 我设法使用具有可接受性能的DataGridView实现查看器,但该控件不支持特定字符串的颜色突出显示。 我现在想将整个文本文件作为字符串保存在内存中,并且只在RichTextBox中显示非常有限数量的记录。 对于滚动和导航,我想添加一个独立的滚动条。 我对这种方法的一个问题是如何从存储的字符串中获取特定的行。 如果有人有任何想法,可以突出我的方法的问题,那么谢谢你。

在调用GDI文本函数后如何修复alpha值?

我有一个使用Aero玻璃效果的应用程序,因此除红色,绿色和蓝色值外,每个像素都有一个alpha值。 我有一个自定义绘制控件,具有纯白色背景(alpha = 255)。 我想使用GDI文本函数在控件上绘制纯文本。 但是,这些函数将alpha值设置为任意值,导致文本半透明地显示我的应用程序下面的任何窗口。 在调用渲染文本之后,我想通过控件中的所有像素并将其alpha值设置回255.这样做的最佳方法是什么? 我对BitBlt , GetPixel和SetPixel函数没有任何好运。 他们似乎忘记了阿尔法值。 以下是我考虑和拒绝的其他解决方案: 绘制到位图,然后将位图复制到设备:使用此方法,文本渲染不会使用监视器的特征(例如,ClearText)。 如果您知道一种方法可以让GDI将文本渲染到位图, 就像渲染到屏幕一样,这也可以解决我的问题。 使用GDI +进行文本呈现:此应用程序最初使用GDI +进行文本呈现(在我开始使用Aero支持之前)。 由于我在尝试使用GDI +精确测量字符串时遇到困难,我切换到GDI。 我宁愿不回头。 设置Aero区域以避免相关控件:我的应用程序窗口实际上是在不同进程中运行的不同应用程序的子窗口。 我无法直接控制顶级窗口上的Aero设置。 该应用程序是使用Windows Forms以C#编写的,尽管我上面没有使用Interop来调用Win32 API函数。

WinForms屏幕上的键盘

我开发了一个用于触摸屏计算机的Windows窗体应用程序。 当用户点击输入框(文本框)时,是否可以显示键盘? 我怎么能这样做?

Winforms – 在面板内填充用户控件

我是winforms的新手,我想做的是一个简单的forms: 在我的表格中有一个小组。 该面板链接到用户控件 用户控件应该填充面板。 这是我的表格: public Form1() { InitializeComponent(); UserControl1 userControl = new UserControl1(); panel1.Controls.Add(userControl); userControl.Anchor = ((AnchorStyles)((((AnchorStyles.Top | AnchorStyles.Bottom) | AnchorStyles.Left) | AnchorStyles.Right))); userControl.Dock = DockStyle.Fill; } 不工作 – >控制doest伸展

在DataGridComboBox问题中显示枚举值

我有一个名为Series的类的dll。 该类有一个字段,它是DataTypes的枚举。 我将datagrid绑定到此类的对象列表,并且我能够以combobox方式显示枚举值但是,值的名称没有多大意义。 例如,我想将’prc’显示为’price’并仍然代表正确的对象值。 这就是我目前所做的 this.seriesDataTypeColumn.Items.AddRange(new object[] { MuDBLayer.DataType.mv, MuDBLayer.DataType.vol, MuDBLayer.DataType.num, MuDBLayer.DataType.prc, MuDBLayer.DataType.Composite}); mv,vol,num和prc显示在datagridcomboboxes中。 我想显示货币价值,数量,数量和价格而不是任何想法?

WCF服务如何与我的winform应用程序交互?

我目前正在开发一个C#Windows窗体应用程序,我打算让它与服务器进行交互。 服务器将从我开发的移动应用程序接收发布,并且每当收到发布时,我的Windows窗体应用程序应该得到通知并给我通知。 为此,我打算为它使用WCF双工服务。 例如,我的移动应用程序发送一个post到我的服务器。 一旦我的服务器读取并接收新的post,该服务应该向我的winform应用程序发送一条消息,提醒我收到了一个post。 winform应用程序的UI应根据我想要更新的内容进行更新。 (例如添加新面板) 这基本上是我希望它能够工作的方式 WCF服务在我的服务器上运行 Windows窗体使用双工合同连接到我的服务器的WCF服务 移动应用程序发布到网页 一旦网页收到发布,asp.net将调用WCF服务 WCF双工服务接收发布并将信息发送到winform应用程序 我的winform应用程序又名WCF客户端使用收到的这条新消息更新UI 我的问题是,第4步如何进入第5步? 具体而言,服务如何在收到发布后将信息发送到winform应用程序。 更具体地说,一旦从网页接收到发布,就调用服务合同并且服务发送和接收信息,服务如何利用回叫信道将信息发送到winform。应用程序并相应地更新UI?

自定义StronglyTyped BindingSource项目添加

我想自定义添加一个新项目到BindingSource (所有强类型),如下面的MSDN文章所述: 如何:使用Windows窗体绑定源自定义项目添加 下面的代码导致InvalidOperationException :添加到BindingSource列表的对象必须都是相同的类型。 此外,对象myTypesBindingSource.Current似乎是一个DataRowView ,里面有我的相关行。 如何自定义强类型BindingSource ? private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.someDataSet = new myDB.SomeDataSet(); this.myTypesBindingSource = new System.Windows.Forms.BindingSource(this.components); this.myTypesTableAdapter = new myDB.SomeDataSetTableAdapters.myTypesTableAdapter(); this.tableAdapterManager = new myDB.SomeDataSetTableAdapters.TableAdapterManager(); this.myTypesBindingNavigator = new System.Windows.Forms.BindingNavigator(this.components); this.someIntValueTextBox = new System.Windows.Forms.TextBox(); // someDataSet this.someDataSet.DataSetName = “SomeDataSet”; this.someDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; // myTypesBindingSource // As generated: // […]