Tag: winforms

从列表或数据集中设置checkedlistbox中的选中项

我有一个CheckedListBox,我想检查另一个列表中的所有项目。 此代码不起作用,因为CheckedItems属性是只读的并且类型不匹配,但它可以最好地了解我想要做什么。 checkedListBox1.DataSource = DataSetSelectAll().Tables[0]; checkedListBox1.ValueMember = “id_table”; checkedListBox1.DisplayMember = “name”; List list = MyCheckedList(); checkedListBox1.CheckedItems = list; 我知道这是错的,但不知道如何更好地解释它。

当DataGridView.SelectionMode为FullRowSelect时,剪贴板复制失败

在Windows窗体中,如果我创建一个包含几行和列的简单DataGridView控件,然后将SelectionMode属性设置为FullRowSelect,我会使用剪贴板的复制function出现奇怪的行为: 当选择一行并且用户点击ctrl-c时,整个行将被复制到剪贴板,单元格之间有\ t字符,如预期的那样。 当用户双击并编辑单个单元格时,在该单元格内部用户选择文本的一部分并点击ctrl-c,STILL将复制整行,而不是所选文本的部分! 作为一种解决方法,我尝试在keydown事件上执行剪贴板复制,但是当编辑控件处于编辑模式时不会触发该事件。 有什么建议?

datagridview中的复杂布局

我正在努力完成这样的事情: 这可以用datagridview吗? 或ListView,或Windows窗体中的任何其他组件? 注意填充和(最重要的)标签在彼此之上。 我怎样才能在C#.NET中实现这一目标?

如何在WinForm应用程序中调试此StackOverflowException?

我有一个winform应用程序。 每隔几秒我检查一些日志文件,读入任何新数据并将任何新数据插入数据库。 当我运行应用程序大约一个小时1/2时,我得到一个StackOverflowException 。 整个期间的日志文件中没有新数据,因此没有新的数据添加到数据库中。 代码在这里出错… if (pictureBox == null) { continue; } if (pictureBox.InvokeRequired) { var toolTip = new ToolTip(); GameServer tempGameFile = gameServer; pictureBox.Invoke(new MethodInvoker( () => toolTip.SetToolTip(pictureBox, string.Format( “{0} : Last Checked: {1}; Last Updated: {2}”, tempGameFile.Name, tempGameFile.CheckedOn.ToLongTimeString(), tempGameFile.UpdatedOn.HasValue ? tempGameFile.UpdatedOn.Value.ToLongTimeString() : “-No Date Set-“)))); } pictureBox.Image = Resources.RedButton; 和pictureBox.Invoke(..)抛出该错误。 那么..我不知道我怎么能想到这一点来弄清楚发生了什么? 有什么建议? […]

在文本框中“结束编辑”的事件

我在winform(c#)中使用文本框,并使用文本在数据库中进行咨询。 但每次文本更改时我都需要不断查阅文本框的文本。 所以对于这些我使用KeyUp。 但是这个事件太慢​​了。 文本框编辑完成后是否会触发任何事件? 我考虑完成2个条件 控制失去了焦点。 控制器有200ms没有按键

方法“InitializeComponent”中的代码由设计者生成,不应手动修改

要在开头加载我的ComboBox,我在InitializeComponent()方法中使用了mine方法LoadDataFromDB() ,但是有一个警告说: 方法“InitializeComponent”中的代码由设计者生成,不应手动修改 那我在哪里可以加载我的ComboBox?

如何确保winform被垃圾收集?

正如我从在线和我的个人实验中学到的那样,表单(System.Windows.Forms.Form)的终结器永远不会被GC调用。 据说在Form GC.SuppressFinalize()的Dispose()内部被调用,因此不会再次调用终结器。 Exapmle: public partial class UpdateForm : Form { public UpdateForm() { InitializeComponent(); // Listen to the event of some model Database.OnDataUpdated += new EventHandler(DataBase_OnDataUpdated); } ~UpdateForm() { // Never gets called. } private void DataBase_OnDataUpdated(object sender, EventArgs e) { // Update data on this form } } 但是,如上面的示例所示,如果表单连接(+ =)某个模型的事件并且不断开( – =)Dispose()中的事件,则表单永远不会被垃圾回收,即使Dispose(被叫。 我要做的是检查表单是否真的是垃圾收集的是我在表单中创建一个大数组以消耗大量内存,如下所示: […]

如何拉伸位图以填充PictureBox

我需要拉伸各种大小的位图来填充PictureBox。 PictureBoxSizeMode.StretchImage排序做我需要的但却想不出使用这种方法正确地向图像添加文本或线条的方法。 下图是一个5×5像素的位图,扩展到380×150 PictureBox。 pictureBox.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox.Image = bmp; 我尝试用这种方式调整这个例子和这个例子 using (var bmp2 = new Bitmap(pictureBox.Width, pictureBox.Height)) using (var g = Graphics.FromImage(bmp2)) { g.InterpolationMode = InterpolationMode.NearestNeighbor; g.DrawImage(bmp, new Rectangle(Point.Empty, bmp2.Size)); pictureBox.Image = bmp2; } 但得到这个 我错过了什么?

尝试在ListView中搜索匹配字符串的子项

我无法扫描ListView以找到与给定字符串匹配的子项。 这是我的代码: private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { string date = datePicker.Value.ToShortDateString(); int count = Program.booker.listView.Items.Count; for (int i = 0; i < count; i++) { ListViewItem lvi = Program.booker.listView.Items[i]; if (lvi.SubItems.Equals(date)) { MessageBox.Show("Found!", "Alert"); Program.booker.listView.MultiSelect = true; Program.booker.listView.Items[i].Selected = true; } else { MessageBox.Show("Nothing found for " + date, "Alert"); } } } […]

C#屏幕分辨率和表格显示

我有一个C#WinForms应用程序,当我将可执行文件提供给不同的用户时,应用程序显示不同的大小(基于他们的屏幕分辨率)。 无法看到应用程序的某些部分。 无论如何根据屏幕分辨率自动调整窗口大小,还是有另一种方法? 编辑:此外,它在不同的操作系统下以不同的风格出现,是否有标准化其设计?