具有自动高度属性的用户控件

我想创建将显示文本的用户控件。 我需要一种在运行时调整控件大小的方法,以便调整高度以显示所有文本。 我已经创建了如下所示的控件: 正如您所看到的,我使用TextRenderer.DrawText绘制了图标和文本。 不幸的是,当我调整控件的大小(仅向左或向右)时,我的文本有时被剪切,如下所示: 我正在使用TextRenderer.MeasureText测量文本,因为我正在计算行数,然后我正在绘制该文本。 这是我正在使用的代码: [Designer(typeof(MyTextBoxDesigner))] public partial class MyTextBox : UserControl { public MyTextBox() { InitializeComponent(); } [DefaultValue(“Demo”), Description(“Text of control”), Category(“Appearance”),Browsable(true)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] public override string Text { get { return base.Text; } set { if (base.Text == value) return; base.Text = value; Invalidate(); } } Image _image; [Description(“Image shown on the […]

mysql存储过程,查询是否存在

我正在寻找一个可能的MySqL查询,它将检查数据库服务器上是否存在存储过程,如果它确实很好返回,如果它没有那么我可以使用c#插入它。 任何帮助表示赞赏 瓦杰

标签文本未更新

我有一个带有状态栏的Windows窗体,它显示了当前的应用程序状态。 我有一个名为AppState的类,它在状态栏中更新了Label,并在处置它时将状态更改回“Ready”。 在我执行操作时的代码中: using (AppState state = new AppState(“Processing…”)) { //Do some work that take some seconds } 但标签保持不变。 我没有任何例外。 标签文本已更新,但在UI上,它会一直显示以前的值。 我在这里遗漏了什么? santosc你是对的,这就是我唯一要做的事情。 这是AppState代码 public class AppState : IDisposable { static string Default = “Ready”; public AppState(string status) { Form.StatusLabel.Text = status; } public void Dispose() { Form.StatusLabel.Text = Default; } }

c#集合inheritance

c#中是否有一个集合支持inheritance,就像对象可以看到包含来自另一个元素以及它们自身的所有元素一样? 例如: HashSet animals = new HashSet(); HashSet dogs = new HashSet(); animals.also_appears_to_include(dogs); 因此,如果我为狗添加2个元素,向动物添加1个元素,那么看看动物有多少元素我会看到3。 或者我可以在每个元素中引用上面提到的3个元素,给动物3个元素和狗2.我仍然有两个独立的,重叠的列表是可取的,但是在这个简单的例子中添加和删除元素可能会变得棘手在添加和删除狗的情况下必须添加或删除两个集合。 或者我可以使用此function实现我自己的集合。

复杂的数据库操作

我为我的ASP.NET应用程序绘制了一个非常简单的数据库设计,并且在这里和那里我设法实现了我的设计…但是我希望将数据插入到这些表中并从中检索。 在我的应用程序中一个非常重要的function将需要来自所有7个表的所有信息用于某个记录,有时我需要让我的应用程序接受所有类型的相关数据并将每个数据放在正确的表中 我的问题是: 拥有如此大的设计是正常的吗? 它对于真正的应用程序来说甚至是大的吗 如果我想添加一个新的孩子,我需要在所有表中填写所有表中的相关所需信息,我将有一个大表单,其中包含一些输入以接受数据,但我将如何将它们插入到我的数据库? 如果我想选择所有的孩子,基于这种设计的选择陈述是什么? PS:在每两个具有(M:M)关系的表之间,考虑第三个表(在该关系中将具有两个表中的每一个的两个主键)。 我熟悉JOIN和一切,但从未应用过这么大的设计……帮助! 提前致谢!

过滤模板列表,属性名称为字符串

嗨,我必须在generics类上应用filter。 样本类如下 public class Sample { List sourceList = new List(); public void applyFilter(string propertyName , EnumOperator operator , object value) { } } 在这里,我想使用linq或动态linq实现filter,但是没有得到任何积极的方向来实现这个function。 请给我一些积极的方向,以便我可以实现此function。 谢谢。

如何将DataGrid绑定到DataTable所有代码?

如何在C#代码后面将DataGrid绑定到DataTable? (所有控件都是在运行时生成的,所以请不要XAML) 我尝试了Binding(),设置DataContext,设置ItemsSource,但都不起作用: /* Binding() fails */ Binding bind = new Binding(); bind.Source = dataset; bind.Path = new PropertyPath(“dataset.Tables”); datagrid.SetBinding(DataSet, bind); /* DataContext fails */ datagrid.DataContext = dataset.Tables; /* ItemsSource fails */ datagrid.ItemsSource = dataset.Tables; 我需要做的就是将DataGrid绑定到DataTable,因此当DataTable中添加了新行时,它将自动显示在DataGrid上。 我通过stackoverflow和谷歌搜索,但奇怪的是我找不到解决方案。

VS 2015实习生Android模拟器无法启动(vmWare 10)

我在新安装和更新的Windows 8.1 N x64 VM上运行VS2015 CTP6。 启用Hyper-V支持 , hypervisor.cpuid.v0 = “FALSE” , vhv.enable = “TRUE”设置为vmx-file。 当我尝试使用Visual Studio模拟器为Android设备运行构建VS将告诉我永远“启动模拟器” 。 没有错误,没有窗口,没有任何东西。 包含的AVD(如AVD_GalaxyNexus_ToolsForApacheCordova)启动正常,只是新的Microsoft VS Emulator for Android无法正常工作。 取消构建过程后,会弹出一条消息:“无法启动模拟设备’VS Emulator ….’”如果我点击F5,它现在会立即弹出(建成后)。 因此,一旦取消构建,VS甚至不会再尝试启动模拟器(在具有该特定仿真设备的项目上)。 在hyper-v-manager中根本没有计算机。 \用于Android \ 1.0 \的Microsoft Visual Studio模拟器不包含XDE.exe,但包含2个vsemu.vhd。 我也按照本指南尝试将模拟器作为独立启动。 “pathto \ XDE.exe”-vhd“pathto \ vsemu.api19.vhd”将实际启动它并在emu屏幕上显示“加载”,但会因为我没有在VS中安装Windows Phone支持而崩溃。

下载大文件,保存在数据库中

我们有很多文件,在SQL Server数据库中保存为二进制文件。 我已经将用于传递这些文件的.ashx文件发送给用户。 不幸的是,当文件变得相当大时,它将失败,并出现以下错误: 算术运算中溢出或下溢 我假设它耗尽了内存,因为我将二进制文件加载到byte []中。 所以,我的问题是,当它来自数据库表时,我怎样才能创建这个function,读取块(也许?)? 似乎Response.TransmitFile()似乎是一个不错的选择,但同样,如何使用数据库? DB.GetReposFile()在下面的代码中从数据库中获取文件。 条目有各种字段:Filename,ContentType,datestamps和FileContent as varbinary。 这是我的function,提供文件: context.Response.Clear(); try { if (!String.IsNullOrEmpty(context.Request.QueryString[“id”])) { int id = Int32.Parse(context.Request.QueryString[“id”]); DataTable dtbl = DB.GetReposFile(id); string FileName = dtbl.Rows[0][“FileName”].ToString(); string Extension = FileName.Substring(FileName.LastIndexOf(‘.’)).ToLower(); context.Response.ContentType = ReturnExtension(Extension); context.Response.AddHeader(“Content-Disposition”, “attachment; filename=” + FileName); byte[] buffer = (byte[])dtbl.Rows[0][“FileContent”]; context.Response.OutputStream.Write(buffer, 0, buffer.Length); } else { context.Response.ContentType […]

调试窗口服务

我想调试窗口服务。 我应该在main()中写什么来启用窗口服务中的调试。 我正在使用C#开发窗口服务。 #if(DEBUG) System.Diagnostics.Debugger.Break(); this.OnStart(null); System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); #else ServiceBase.Run(this); #endif 我写了上面的代码段,但在线(这