草庐IT

WinForms

全部标签

c# - 如何在禁用时更改富文本框的背景颜色?

每当我将RichTextBox.Enabled属性设置为false时,它​​的背景颜色会自动设置为灰色,因为它设置为在控制面板中设置的系统颜色中的颜色。即使我将其设置为禁用,如何将其颜色更改为黑色? 最佳答案 参见:HowtochangethefontcolorofadisabledTextBox?[编辑-添加了代码示例]richTextBox.TabStop=false;richTextBox.ReadOnly=true;richTextBox.BackColor=Color.DimGray;richTextBox.Cursor=

c# - 检测控件是否被处置

在我的应用程序中,我有一个使用线程池执行异步操作的用户控件。线程池方法如下所示:privatevoidAsyncFunction(objectstate){...dothecalculation//refreshthegriddataontheUIthreadthis.BeginInvoke(newMethodInvoker(()=>{...updatetheui}));}我的问题是,如果用户关闭对话框......用户控件被处理,我得到异常:在创建窗口句柄之前,无法对控件调用Invoke或BeginInvoke。您知道检测对话框是否被释放的方法吗?我不想在对话框关闭时设置控件的属性。还

c# - 如何填充 C# Windows 窗体组合框?

我如何从sql数据库(带有id和name列的学生表)填充组合框,显示文本代表学生的姓名,组合框项目的值是该学生的id,当我得到组合框的值我会得到id值 最佳答案 以下是对您来说重要的属性。ComboBox.DataSourcePropertyAdatasourcecanbeadatabase,aWebservice,oranobjectthatcanlaterbeusedtogeneratedata-boundcontrols.WhentheDataSourcepropertyisset,theitemscollectioncann

c# - 对资源和 GetManifestResourceNames() 感到困惑

我一直在学习C#和可视化C#IDE中的资源。我现在很困惑。我已经阅读了StackOverflow上的一些页面,例如这个how-to-get-the-path-of-an-embebbed-resource和Microsoft的文档,但它让我感到困惑。我的第一个问题:什么是资源:它是.resources文件还是其中的文件,例如图标。第二:当我使用GetManifestResourceNames方法时:我是获取.resources文件名还是其中的文件名。当我在我的程序中使用它时,我只得到.resources文件,但是阅读像这样的主题loop-through-all-the-resource

c# - DataGridView 行背景颜色没有改变

即使在Windows窗体中,我也想根据加载时的特定条件更改DGV行的背景颜色。但我看不到任何DGV行的颜色有任何变化。谁能告诉我如何解决这个问题?privatevoidfrmSecondaryPumps_Load(objectsender,EventArgse){try{DataTabledt=DeviceData.BindData("SECONDARY_PUMPS".ToUpper());dataGridView1.DataSource=dt;foreach(DataGridViewRowrowindataGridView1.Rows){foreach(DataGridViewCol

c# - 如何将 DataSource 转换为 List<T>?

我有以下在DataGridView上加载产品的方法privatevoidLoadProducts(Listproducts){Source.DataSource=products;//SourceisBindingSourceProductsDataGrid.DataSource=Source;}现在我正试图将它们还给我以保存它们,如下所示。privatevoidSaveAll(){Repositoryrepository=Repository.Instance;Listproducts=(List)Source.DataSource;Console.WriteLine("Estees

c# - DatagridView 不显示错误图标或错误文本?

我有一个带有datagridview的winform(c#)。我将网格的数据源设置为数据表。用户想检查数据表中的某些数据是否存在于另一个源中,因此我们循环遍历表与另一个源进行行比较,并将数据表上的rowerror设置为一条短消息。datagridview没有显示这些错误。设置了datagridviewrows上的错误文本,但没有显示错误。我是不是对错误的显示期望过高,而它们只在编辑网格中的数据时显示?我已经对此进行了一天的修改,并搜索了已发布类似问题的人但无济于事-求助! 最佳答案 检查AutoSizeRowsMo​​de是否设置为

c# - 使用户控件显示在窗体边界之外

我决定重新实现日期时间选择器,因为标准日期时间选择器不可为空。用户希望从空白字段开始并键入(而不是选择)日期。我已经创建了一个用户控件来执行此操作,但是如果用户控件靠近窗体的边缘,它将在窗体边界上被切断。标准日期时间选择器不会遇到此问题。这是显示问题的图片。我的用户控件在左边,标准的日期时间选择器在右边:alttexthttp://img50.imageshack.us/img50/9104/datetimepickervu6.jpg如您所见,标准控件将显示在窗体和应用程序边界上。如何让我控制的月份选择器执行相同的操作?谢谢! 最佳答案

c# - 如何删除当前绑定(bind)到控件的工具提示?

我目前正在向标签添加工具提示,如下所示:ToolTipLabelToolTip=newSystem.Windows.Forms.ToolTip();LabelToolTip.SetToolTip(this.LocationLabel,text);当我需要随着标签文本的变化而改变这个工具提示时,我尝试做同样的事情来添加一个新的工具提示。不幸的是,旧的工具提示仍然在新的提示之下,这真的很烦人。有没有一种方法可以删除旧的工具提示,或者当我想更改标签中的文本时我应该只制作一个新标签? 最佳答案 创建ToolTip的单个实例,并在您需要使用S

c# - 如何捕获鼠标移动事件

我想在我的主窗体中捕获鼠标移动事件。虽然我能够为主窗体连接MouseEventHandler,但当光标位于UserControl或任何其他控件上时,事件不再触发。如何确保我始终拥有鼠标位置。 最佳答案 您可以使用低级鼠标Hook。参见this示例并检查HookCallback中的WM_MOUSEMOVE消息。您还可以使用IMessageFilter类来捕获鼠标事件并触发事件来获取位置(注意:这只会获取窗口上方的位置,而不是窗口外的位置):usingSystem;usingSystem.Collections.Generic;usin