Tag: winforms

选择新添加的Row – DataGridView和BindingSource

我正在向绑定到DataGridView的BindingSource添加一个新的Row source.AddNew(); 在此之后,使用BindingSource获取新添加的行,当它排序时返回DataGridView中的下一行。 ROW “A” ROW “B” <- myBindingSource.AddNew(); ROW "C" myBindingSource.Current给出ROW“C”。 (它成为DataGridView中的选定行) 我需要这个,因为我想只更新新添加的行 DataRowView drv = (DataRowView)myBindingSource.Current; myTableAdapter.Update(drv.Row); 而不是整个表。 myTableAdapter.Update(myDataSet.myTable); 而且,我想在插入后在DataGridView中选择这个新添加的行。 有可能吗?

过滤Listview中的项目

我试图使用TextBox过滤ListView的项目。 我已经设法制作了一些东西,但它只能从我的列表视图中删除项目,而不是将它们带回来。 这是我的代码的一个小例子: private void textBox1_TextChanged(object sender, EventArgs e) { string value = textBox1.Text.ToLower(); for (int i = listView1.Items.Count – 1; -1 < i; i–) { if (listView1.Items[i].Text.ToLower().StartsWith(value) == false) { listView1.Items[i].Remove(); } } } 有没有人知道如何检索已删除的项目? 我似乎无法弄明白>:…

如何在Windows窗体中隐藏控件的大小调整句柄?

我有一个UserControl,想在设计时隐藏resize的句柄,就像TextBoxControl一样,它只有两个句柄(左右句柄)……文本框的高度是固定的,除非你说它是多行的。 在这种情况下,文本框显示所有九个resize手柄。

如何异步填充虚拟模式下的ListView?

我想在列表视图中显示我们数据库中的记录 – 但检索可能需要很长时间。 我可以使用RetrieveVirtualItem告诉我何时需要新的ListViewItem,添加一个虚拟项目,然后开始检索; 但是当数据库返回时我该如何处理记录呢? 当ListView在VirtualMode中时,我无法更新ListView的Items集合。 有没有办法告诉ListView重新加载项目? 或者我可以保持对ListViewItem的引用并填充它? 如果这些都不起作用,我还能以异步方式在虚拟模式下填充ListView吗?

如何从另一个类访问winform组件?

我有一个带有一个按钮和两个标签的表单 我有一个名为myCounter的独立类 我希望myCounter类能够通过名为changeColor的方法访问表单中的标签。 如何在此课程中提供标签 表格 public partial class Form1 : Form { public Form1() { InitializeComponent(); } public Color colTurn { get { return lblp1Turn.BackColor; } set { lblp1Turn.BackColor = value; } } private void Form1_Load(object sender, EventArgs e) { } } class级 class myCounter { private readonly Form1 Board; public myCounter(Form1 Board) { this.Board […]

使用C#在富文本框中打开文件

这个问题已得到解答。 我推荐下面的sumit_programmers解决方案。 现在,我已经删除了我的代码,认为它比有用的更令人困惑。 当我进一步开发它时,也许我会在这里发布我的代码,并附上一些评论。 您可能还对使用C#从富文本框中保存文本的问题的答案感兴趣。 有一个答案让人想起这个问题的答案。 代码应该可以工作,但它是由我编写的,因此可能存在一些错误或缺少信息。 更新:我对代码进行了一些改进(至少我认为是这样)。 “Encoding.Default”似乎适用于最常见的编码,如ANSI。 如果编码是UTF-8而没有字节顺序标记(BOM),那么似乎“Encoding.Default”不起作用。 有关更多信息,请访问informit.com/guides 。 这是我现在正在使用的代码: private void fileOpen_Click(object sender, EventArgs e) { using (OpenFileDialog dlgOpen = new OpenFileDialog()) { try { // Available file extensions dlgOpen.Filter = “All files(*.*)|*.*”; // Initial directory dlgOpen.InitialDirectory = “D:”; // OpenFileDialog title dlgOpen.Title = “Open”; // Show OpenFileDialog box if (dlgOpen.ShowDialog() […]

如何在Windows窗体应用程序中实现控件validation?

我试图更好地了解validation如何在Windows窗体应用程序中工作。 互联网上充满了琐碎的例子,但我找不到一个解释控制validation的非平凡的例子。 无论如何,多亏了SwDevMan81和Hans Passant,我从一个比昨天更好的地方开始。 “真正的应用程序”有一个包含许多TextBox控件的对话框。 每个控件都实现Validating事件。 正如您在示例中所看到的, ValidateChildren作为Click事件的结果被调用,导致Validating事件被发送到每个控件。 该应用程序还使用ErrorProvider控件来提供用户反馈。 昨天,我不明白如何使用Ok按钮Click事件来执行此validation。 今天,我的对话框按预期工作。 单击“确定”按钮会导致ErrorProvider执行控件无效且对话框未意外关闭的操作。 因此,虽然这似乎有效,但我感觉我“在线外”。 在Windows窗体应用程序中是否有用于控制validation的“最佳实践”文档/站点? 在许多令我困惑的事情中,当Ok按钮DialogResult属性设置为返回DialogResult.OK时,我无法找到对话框行为的解释。 为什么设置此属性会干扰validation? (尝试使用和不使用该行的示例,看看我的意思。) 我昨天的问题(看起来似乎)主要源于不了解ValidateChildren方法以及我将Ok按钮DialogResult属性设置为DialogResult.OK。 将此属性设置为DialogResult.None似乎更改了Form类的一些自动行为。 TIA using System; using System.ComponentModel; using System.Windows.Forms; namespace ConsoleApp { class Program { static void Main( string[] args ) { Dialog dialog = new Dialog(); if( dialog.ShowDialog() == DialogResult.OK ) Console.Beep(); } } public class Dialog […]

更改表单上的所有按钮

我已经非常接近找到这个解决方案; 在这一点上只缺少一个小细节。 我想做什么: 我想通过代码更改我的窗体(Form1)上的每个按钮的光标样式。 我知道如何使用foreach搜索表单上的所有控件,但我不知道如何通过我编写的例程将此控件作为参数传递。 我将在下面展示我正在做的事情的一个例子。 private void Form1_Load(object sender, EventArgs e) { foreach (Button b in this.Controls) { ChangeCursor(b); // Here is where I’m trying to pass the button as a parameter. Clearly this is not acceptable. } } private void ChangeCursor(System.Windows.Forms.Button Btn) { Btn.Cursor = Cursors.Hand; } 可能有人给我一个提示吗? 非常感谢你 埃文

如何处理ComboBox的SelectedIndexChanged事件?

我有DataGridView ,它包含两个ComboBox列。 第二个ComboBox将根据第一个ComboBox的选定值填充数据。 如何处理第一个ComboBox的SelectedIndexChanged事件。

在C#Winforms应用程序中使用JSON

所以我在C#中创建一个应用程序来从Web上读取一些信息,但它是一个Windows窗体应用程序。 我得到一个JSON字符串,我需要从中获取一些信息。 我知道有一个用于C#Web应用程序的库,但是如何在我的Windows窗体应用程序中使用?