Tag: winforms

如何清除()控件而不会导致内存泄漏

阅读有关Control.Clear(); 导致内存泄漏(在MSDNvalidation),我想知道是否: while (Controls.Count > 0) Controls[0].Dispose(); 就足够了,还是我必须递归遍历控件中的所有控件? 还有什么理由去做Control.Clear(); 之后? (因为我看到有人说某处)? 谢谢。

列出winform中的回复

在我的C#应用​​程序中,我从服务器获得一个xml,其中包含一些回复,例如在论坛post中(包含作者,时间,正文,标题等等)。 当我得到这个xml时,我创建了一个新表单,我想在其中显示这些回复,还有一个带有“添加回复”按钮的小文本框。 我还想在表单中显示的回复列表中的一些编辑按钮或许我自己的回复。 我想到显示回复的最简单方法是在表单中放置一个Web浏览器控件,在xml的字符串中生成一个完整的html页面,并将其放入该Web浏览器控件中。 在它下面,我可以在文本框中添加“添加回复”按钮。 一切都还可以,除了我不知道如何在我自己的回复中实现编辑function(我的意思是我可以在那里添加一个链接……但链接到什么) 我想知道是否有办法从Web浏览器控件获取该编辑事件(我的猜测是我不能)或另一种(可能是简单/简单)的想法,使用其他控件在winform中显示回复

比较两个excel文件的差异

我想比较两个输入csv文件,看看是否有添加或删除的行。 什么是最好的方法来解决这个问题。 我没有使用列名,因为列的名称对于所有文件都不一致。 private void compare_btn_Click(object sender, EventArgs e) { string firstFile = firstExcel_txt.Text; var results = ReadExcel(openFileDialog1); string secondFile = secondExcel_txt.Text; var results2 = ReadExcel(openFileDialog2); } 读: public object ReadExcel(OpenFileDialog openFileDialog) { var _excelFile = new ExcelQueryFactory(openFileDialog.FileName); var _info = from c in _excelFile.WorksheetNoHeader() select c; string header1, header2, header3; foreach (var item in […]

在Windows窗体.net应用程序中使用Canvas

我想创建一个Winform应用程序,在其上显示Datagrid , Charts 。 我的要求是,用户应该能够根据他的选择定位这些元素,比如我们在winform设计视图中删除text box , label 。 我知道WPF中有一个Canvas类,但我想用Winforms实现相同的function。 我可以在Winform使用WPF Canvas吗? 或者还有其他解决方案吗?

如何制作精确的十进制计时器?

我对此感到非常沮丧.. 我有一个名为timer1的计时器和一个名为TimeElapsedTextBox的文本框和一个名为TimeElapsedTextBox的double变量,计时器在文本框中每1秒(1000毫秒)滴答一次,我希望它以这种格式显示时间: Seconds.PartsOfSecond 这是Tick事件: private void timer1_Tick(object sender, EventArgs e) { TimeTakenToFinish += (double)timer1.Interval / 10000; TimeElapsedTextBox.Text = TimeTakenToFinish; } 它实际上是按照我想要的方式在文本框中显示它,但它没有正确计算..我的意思是,它的计数不到真正的第二个.. 你能告诉我如何解决这个问题吗?

如何使用JSON数据递归填充TreeView

我有一个winforms树视图,我可以自动读取数据,(一个等于key的节点,里面的节点等于value),但是当读取对象类型时,它内部的值不会是对象的子节点节点(对象的键),(也许我无法解释,这是截图和我的方法。) layer0需要在纹理内部,并且缩放需要在显示内部 我的杰森: { “parent”: “builtin/generated”, “textures”: { “layer0”: “mm:items/iron_dust” }, “display”: { “scale”: [ 1.7, 1.7, 1.7 ] } } 我自动检测的方法(实际上不是全部我的) private void Form1_Load(object sender, EventArgs e) { StreamReader reader = new StreamReader(path); string json = reader.ReadToEnd(); reader.Close(); JObject obj = JObject.Parse(json); getAllProperties(obj); } void getAllProperties(JToken children) { TreeNode mainNode = treeView1.Nodes[0]; mainNode.Text = […]

C#Parent和Child中的MDI表单

我的项目中有3个表单。 form1是MDI控制器 form2和form3是MDI儿童 如何创建form1作为父级, form2和form3作为子级? 像旧的MFC的MDI接口: 想象一下form2是父母,有一个按钮。 如果单击,则必须在父窗体( form1 )中打开form3 。 我该如何设置?

如何在DataGridView中将行显示为列?

我正在尝试使用VS 2008中的datagridview显示从sql数据库中检索到的数据集。但我需要垂直而不是水平显示数据。 这就是我一开始就做的。 con.Open(); SqlCommand cmd = new SqlCommand(“proc_SearchProfile”, con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(“@scute_id”, SqlDbType.VarChar, (10)).Value = val; SqlDataAdapter adapt = new SqlDataAdapter(cmd); DataSet dset = new DataSet(); adapt.Fill(dset, “Profile”); this.dataGridView1.DataSource = dset; this.dataGridView1.DataMember = “Profile”; 我搜索并阅读了一些线程,但没有一个工作。 任何人都可以帮我在垂直数据网格视图中显示检索到的数据吗?

更快捷地将csv读取到网格

我在Windows Forms .NET 3.5中有以下内容 它适用于记录小于10,000的csv,但对于30,000以上的记录则较慢。 输入csv文件可以在1 – 1,00,000条记录之间进行任何记录 目前使用的代码: /// /// This will import file to the collection object /// private bool ImportFile() { try { String fName; String textLine = string.Empty; String[] splitLine; // clear the grid view accountsDataGridView.Rows.Clear(); fName = openFileDialog1.FileName; if (System.IO.File.Exists(fName)) { System.IO.StreamReader objReader = new System.IO.StreamReader(fName); do { textLine = […]

Photoshop喜欢透明图像上的背景

我正在为我的课程项目制作一个图形编辑器,我想这样做,例如当用户将图片加载到编辑器中或者在PictureBox中绘制某些东西时,所有的alpha部分都显示为棋盘状的背景。 我的想法是,当我创建一个具有透明背景设置的PictureBox时,我在它后面创建另一个,将BackColor设置为白色并在水平和垂直方向上交替添加灰色图像50×50。 这是解决问题的好方法吗? 如果,不是吗?你有什么建议吗? 例如,在Photoshop中,我创建图像1600×1600。 当我缩放到某个级别时,它缩小了框并添加了更多的框来填充图像。 如果你使用类似程序的Photoshop你知道我的意思。 现在,我将如何实现同样的效果?