Tag: winforms

如何显示超过63个字符的系统托盘工具提示?

如何显示超过63个字符的系统托盘工具提示? NotifyIcon.Text有63个字符限制,但我看到VNC服务器有更长的工具提示。 我该怎么做VNC服务器呢?

WinForms TreeView中的三态复选框

我有一个TreeView,允许用户通过选中或取消选中每个项目的复选框来选择分层数据的某些元素。 目前,我在有孩子的节点上禁用了使用其他问题的复选框隐藏技术的框 ,如下所示: ☑ Node 1 ☐ Node 2 • Node 3 ☑ Node 3.1 ☑ Node 3.2 • Node 4 ☐ Node 4.1 ☑ Node 4.2 但更好的解决方案是为父节点使用三态复选框,如下所示: ☑ Node 1 ☐ Node 2 ☑ Node 3 ☑ Node 3.1 ☑ Node 3.2 ☒ Node 4 ☐ Node 4.1 ☑ Node 4.2 由于此function在Win32中可用,我的问题是如何在不自己绘制框的情况下执行此操作(例如,作为用户绘制的控件或使用图像列表 )。 我根本不熟悉Win32 […]

如何获取Entity Framework 5中的已修改对象列表

我将entities列表绑定到数据网格视图,如下所示: var orders = context.Order.ToList(); BindingList orderList = new BindingList(orders); dataGridView1.DataSource = orderList; 用户可以直接在datagridview上编辑或添加新内容。 当用户单击“ Save按钮时,为了优化性能,我想检索已更改/新的实体列表以执行插入/更新。 我怎样才能做到这一点? 编辑定义向gridview添加新行: BindinList orders = (BindingList)dataGridView1.Datasource; order.Add(new Order()); 编辑2解决: BindinList orders = (BindingList)dataGridView1.Datasource; Order order = new Order(); context.Order.Add(order); order.Add(order);

C# – 将TextBox绑定到整数

如何将TextBox绑定到整数? 例如,将单位绑定到textBox1。 public partial class Form1 : Form { int unit; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { textBox1.DataBindings.Add(“Text”, unit, “???”); }

在C#中如何收集程序崩溃的堆栈跟踪

我是C#的新手。 我正在编写一个基于桌面的小型应用程序,我需要在应用程序中使用此function。 如果应用程序随时崩溃,应用程序应该有最后的机会收集堆栈跟踪并将其发回给我… 请告诉我这方面的指示。 我是否需要尝试捕获覆盖主应用程序的入口点? 或者在C#应用程序中处理此类事情的最佳方法是什么。 谢谢,

定制,复杂,动态reflection解决方案 – C#

我有很多我正在使用的自定义类,我将解释并发布示例。 在解释他们所做的一切之后,我将尝试清楚地描述我的错误发生的条件。 首先,我使用PropertyGrid来显示几种不同类型对象的属性。 因为PropertyGrid的默认绑定不是我想要的描述,我创建了一些自定义类,我将其称为“显示”类。 这些Display类是通过传入一个对象然后创建属性来构造的,这些属性返回格式良好的字符串以及传入的真实对象的公共属性(在某些情况下是方法)的描述。 我将用一些简短的示例代码演示这个: 以下是我想在PropertyGrid中显示的对象示例: public class Joint { public Joint(…) {…} //properties public string Name { get; set;} public CustomObject CC { get; set;} public List Custom List { get; set;} } 字符串属性“Name”在PropertyGrid中显示正常但是CustomObject和List没有以对用户友好的方式显示。 所以我尝试通过编写这个类来创建一个解决方案: public class DisplayJoint { private Joint _jnt; public DisplayJoint(Joint jnt) { _jnt = jnt; } //properties public string […]

C#keypress不捕获’删除’键

我在ListView上添加了一个keyPress事件。 通过我的事件断点,我可以看到大多数键触发事件。 然而,其中一些,我感兴趣的(删除),只是不会触发我的事件。 这有点奇怪吗? 不,我的键盘上没有坏掉的按键:D private void listView1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Delete) { ListView target = (ListView)sender; if (target.SelectedIndices != null && target.SelectedIndices.Count > 0) { string ric = target.SelectedItems[0].SubItems[0].Text; //target.Items.RemoveAt(target.SelectedIndices[0]); ListModels.getInstance().getModel(“Vols”).removeRic(ric); } } }

c#如何从sqldatareader返回数据集?

我在公共课上有这个: SqlConnection myConnection = new SqlConnection(“Data Source=hermes;database=qcvalues; Integrated Security=SSPI;”); myConnection.Open(); SqlDataReader myReader = null; SqlCommand myCommand = new SqlCommand(InitializeQuery(), myConnection); myReader = myCommand.ExecuteReader(); 我需要控件的数据源来从myReader获取数据集。 不幸的是,这很难做到,因为控件是在一个表单(一个单独的类)上。 如何将myReader数据集返回到表单中控件的datasource属性?

如何用C#打印PDF

我试图解决这个问题将近2天。 网上有很多或更少的好解决方案,但没有一个完美适合我的任务。 任务: 以编程方式打印PDF 使用固定打印机进行操作 不要让用户做多个Button_Click 做到沉默 – 越多越好 做客户端 第一解决方案 使用Forms.WebBrowser执行此操作 如果我们安装了Adobe Reader,则有一个插件可以在webbrowser中显示PDF。 有了这个解决方案,我们有一个很好的预览和webbrowserControlName.Print()我们可以触发控件来打印其内容。 问题 – 我们还有一个PrintDialog。 使用start参数启动AcroRd32.exe 以下CMD命令让我们使用Adobe Reader打印PDF。 InsertPathTo .. \ AcroRd32.exe / t“C:\ sample.pdf”“\ printerNetwork \ printerName” 问题 – 我们需要AcroRd32.exe的绝对路径 有一个Adobe Reader窗口打开,必须打开它,直到打印任务准备就绪。 使用Windows预设 Process process = new Process(); process.StartInfo.FileName = pathToPdf; process.StartInfo.Verb = “printto”; process.StartInfo.Arguments = “\”” + printerName + “\””; […]

调用和BeginInvoking MessageBox有什么区别?

在表格中,比较 BeginInvoke (new Action (() => { MessageBox.Show ()); })); 同 Invoke (new Action (() => { MessageBox.Show ()); })); 有什么区别,什么时候应该使用一个而不是另一个? 如何通过MessageBox的消息泵来影响行为? 我做了一些测试,发现两种方法都阻止了UI。 唯一的区别是Invoke实际上是立即调用的,而BeginInvoke需要(非常短的)时间直到代码运行。 这是可以预料的。