Tag: winforms

DataGridView选定的行向上和向下移动

如何允许向上或向下移动DataGridView(DGV)中的选定行。 我之前用ListView完成了这个。 不幸的是,对我来说,更换DGV不是一种选择( 诅咒 )。 顺便说一句,DGV数据源是一个通用集合。 DGV侧面有两个按钮,是,UP和Down。 任何人都可以帮我指出正确的方向。 我确实有我用于ListView的代码,如果它有帮助(它没有帮助我)。

更改Winforms菜单下拉列表的边框颜色

是否可以更改工具条菜单下拉列表的边框颜色。 在下面的示例中,我希望下拉菜单有1种颜色(蓝色),而当前没有白色边框被移位,但保持主菜单(“我的菜单”)项目为白色。 有任何想法吗?

在绑定数据库中的数据之前,将项添加到combobox

我有一个Windows窗体表格中的combobox,它从数据库中检索数据。 我做得很好,但我想在数据库中添加第一项。 我怎样才能做到这一点? 我在哪里可以把它? public Category() { InitializeComponent(); CategoryParent(); } private void CategoryParent() { using (SqlConnection Con = GetConnection()) { SqlDataAdapter da = new SqlDataAdapter(“Select Category.Category, Category.Id from Category”, Con); DataTable dt = new DataTable(); da.Fill(dt); CBParent.DataSource = dt; CBParent.DisplayMember = “Category”; CBParent.ValueMember = “Id”; } }

如何将所有者窗口传递给Show()方法重载?

我正在处理Excel添加,在用户单击function区栏上的按钮后打开一个winform。 此按钮需要是非模态的,以便用户仍然可以与父窗口进行交互,但它也必须始终保持在父窗口的顶部。 为了实现这一点,我试图将父窗口作为参数传递给Show()方法。 这是我的代码: Ribbon1.cs private void button2_Click(object sender, RibbonControlEventArgs e) { RangeSelectForm newForm = new RangeSelectForm(); newForm.Show(this); } 此代码的问题是“this”一词引用了function区类,而不是父窗口。 我也试过传入Globals.ThisAddIn.Application.Windows.Parent。 这导致运行时错误“’System.Windows.Forms.Form.Show(System.Windows.Forms.IWin32Window)’的最佳重载方法匹配’具有一些无效参数”。 将父窗口传递给Show()的正确方法是什么? 如果它是相关的,这是使用C#在.NET 4.0上编写的Office 2010应用程序。 编辑—基于Slaks答案 using Excel = Microsoft.Office.Interop.Excel; … class ArbitraryWindow : IWin32Window { public ArbitraryWindow(IntPtr handle) { Handle = handle; } public IntPtr Handle { get; private set; } } private […]

在C#中编写全局自定义事件

我在这个窗体上有一个winform winform1和2个用户控件control1和control2 现在我想定义一个自定义事件 ,它在control1中被引发/触发并在control2中被接收。 该事件应该是全局的,而不是在control1中直接定义。 control2不应该知道control1的存在。 该事件也应由其他控件提出。 C#代码怎么样? 我需要像发布者类这样的东西吗?

从FontStyle中提取标志(切换FontStyles)

我有一点问题。 我有一个1 RichTextBox和2个按钮。 我有2个按钮,用于“切换Bold FStyle”和“切换斜体FStyle”。 我想在不影响其他FontStyles的情况下切换FontStyles。 我希望你能理解我。 下面的代码在组合 FontStyles时有效,但在分离/减去FontStyles时不起作用 。 private void button1_Click(object sender, EventArgs e) { richTextBox1.SelectionFont = new Font(richTextBox1.Font, (richTextBox1.SelectionFont.Bold == false ? richTextBox1.SelectionFont.Style | FontStyle.Bold : richTextBox1.SelectionFont.Style)); } private void button2_Click(object sender, EventArgs e) { richTextBox1.SelectionFont = new Font(richTextBox1.Font, (richTextBox1.SelectionFont.Italic == false ? richTextBox1.SelectionFont.Style | FontStyle.Italic : richTextBox1.SelectionFont.Style)); } 我选择了大胆的文字 我选择了文本Italic 我希望在Bold仍处于活动状态(或相反)时删除Italic

自定义控件 – 属性框中的可点击链接

我正在使用C#进行自定义控件,我需要添加一个属性框的链接(所以我可以在单击后显示一个表单)。 这是一个例子:

捕获Windows窗体应用程序中的组合键事件

当用户按下Shift + UP键时,我希望我的表单通过调用消息框来响应。 如何在Windows窗体中执行此操作?

一次将datagridview的所有数据插入数据库

我有一个datagridview,它由各种操作和用户对数据的操作创建。 我想立即将gridview的所有数据插入数据库,我知道我可以尝试类似这样的代码: for(int i=0; i< dataGridView1.Rows.Count;i++) { string StrQuery= @"INSERT INTO tableName VALUES (" + dataGridView1.Rows[i].Cells["ColumnName"].Value +", " + dataGridView1.Rows[i].Cells["ColumnName"].Value +");"; try { using (SqlConnection conn = new SqlConnection(ConnString)) { using (SqlCommand comm = new SqlCommand(StrQuery, conn)) { conn.Open(); comm.ExecuteNonQuery(); } } } 但每次插入记录时创建新连接是否公平? 数据网格可能包含很多行…有没有办法一次性将所有数据传递到服务器并在sql中循环插入所有数据?

Winform应用程序的F5或启动调试按钮是否为灰色?

我知道有很多与此相关的问题,但是到目前为止还没有人对我说过。 我有一个winform应用程序但是当我尝试调试它时,我的“开始”按钮被禁用。 现在,当我尝试调试时,我的Start Debugging键被禁用 我已经完成的事情是: 1)我已经将winform应用程序设置为Single Start Up项目。 2)我删除了多个启动项目选项。 3)我试图多次重启我的Visual Studio。 4)我重建了应用程序,它正在成功构建,没有错误。 5)我已经构建了整个解决方案,它也成功构建,没有错误。 6)我检查了sln文件,其格式版本为: Microsoft Visual Studio解决方案文件,格式版本11.00 我认为是正确的。