标签: winforms

为C#应用程序创建一个安装程序,并将.NET Framework安装程序包含在安装程序中

我已经完成了我的C#应用​​程序,但是我有一点问题:

当我尝试在另一台PC上运行我的应用程序时,我总是需要安装.NET Framework 4.0.

如果没有从互联网安装框架,它有什么可以做的吗?

我在InnoSetup之前尝试过VB6应用程序,但我不确定它是否适用于.NET 4.0!

有任何想法吗?

.net c# installation visual-studio winforms

115
推荐指数
2
解决办法
22万
查看次数

如何在表单应用程序中显示控制台输出/窗口?

要立即陷入困境,这是一个非常基本的例子:

using System;
using System.Windows.Forms;

class test
{ 
    static void Main()
    { 
        Console.WriteLine("test");
        MessageBox.Show("test");
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我使用默认选项(在命令行使用csc)编译它,正如预期的那样,它将编译到控制台应用程序.另外,因为我导入了System.Windows.Forms,它还会显示一个消息框.

现在,如果我使用该选项/target:winexe,我认为Windows Application与在项目选项中选择相同,正如预期的那样,我只会看到消息框而没有控制台输出.

(事实上​​,从命令行启动它的那一刻,我可以在应用程序完成之前发出下一个命令).

所以,我的问题是 - 我知道你可以从控制台应用程序获得"windows"/表单输出,但是无论如何从Windows应用程序显示控制台?

c# compilation console-application winforms

114
推荐指数
9
解决办法
28万
查看次数

如何获取特定类型(按钮/文本框)的Windows窗体表单的所有子控件?

我需要获取x类型的表单上的所有控件.我很确定我曾经使用过这样的代码:

dim ctrls() as Control
ctrls = Me.Controls(GetType(TextBox))
Run Code Online (Sandbox Code Playgroud)

我知道我可以迭代所有控件让孩子们使用递归函数,但是有更简单或更直接的东西,可能如下所示?

Dim Ctrls = From ctrl In Me.Controls Where ctrl.GetType Is Textbox
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net controls winforms

113
推荐指数
7
解决办法
18万
查看次数

将枚举绑定到WinForms组合框,然后进行设置

很多人都回答了如何将枚举绑定到WinForms中的组合框的问题.就像这样:

comboBox1.DataSource = Enum.GetValues(typeof(MyEnum));
Run Code Online (Sandbox Code Playgroud)

但是如果不能设置要显示的实际值,那就没用了.

我试过了:

comboBox1.SelectedItem = MyEnum.Something; // Does not work. SelectedItem remains null
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

comboBox1.SelectedIndex = Convert.ToInt32(MyEnum.Something); // ArgumentOutOfRangeException, SelectedIndex remains -1
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法如何做到这一点?

.net c# enums combobox winforms

112
推荐指数
8
解决办法
17万
查看次数

从Windows窗体转换为WPF

很长一段时间以来,我一直坚持使用Windows Forms开发(从VB6开始,一直到C#.NET 4.5),而且我已经达到了Windows Forms可以做的极限,两者都使用纯.NET和本机代码的特殊效果.

我知道WPF是未来(目前),Windows Forms正在放慢成为一种被弃用的技​​术.

我曾经尝试过学习WPF和XAML,但是我遇到了WPF的新设计师......与Windows Forms设计师相比,它似乎很难使用...当然......这只是一个学习曲线,在某些时候,我打算继续学习WPF.

与此同时,我想知道.NET的WPF设计器是否有更适合Windows Forms开发人员的替代方案?

c# windows wpf windows-forms-designer winforms

112
推荐指数
5
解决办法
7万
查看次数

按Enter键时停止'Ding'

我有一个非常简单的Windows窗体应用程序.而且,在Windows(或至少Windows窗体应用程序)中,当您在单行TextBox控件中按Enter时,您会听到一个丁.这是一种不愉快的声音,表示你无法输入换行符,因为它是一个单行的TextBox.

这一切都很好.但是,在我的表单中,我有1个TextBox和一个搜索按钮.而且我允许用户按Enter键,他们已经完成录入后进行搜索,所以他们不具备使用鼠标点击搜索按钮.

但是这个丁声就出现了.这很烦人.

我们如何才能使声音在我的表格中根本不发挥?

@David H - 这是我如何检测输入按下:

private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        // Perform search now.
    }
}
Run Code Online (Sandbox Code Playgroud)

c# audio system-sounds winforms

111
推荐指数
6
解决办法
6万
查看次数

string.Format()给出"输入字符串格式不正确"

我在这做错了什么?

string tmp = @"
    if (UseImageFiles) {
        vCalHeader += ""<td><img onmousedown='' src= '{0}cal_fastreverse.gif' width='13px' height='9' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>\n""; //Year scroller (decrease 1 year)
        calHeight += 22;
    }";

string x = "xter";
tmp = string.Format(tmp, x);
Run Code Online (Sandbox Code Playgroud)

我明白了

输入字符串的格式不正确

当试图改变{0}.我在C#和WinForms中这样做.

格式异常未处理
输入字符串格式不正确

我得到的疑难解答:

确保您的方法参数格式正确.将字符串转换为datetime时,解析字符串以在将每个变量放入DateTime对象之前取出日期.

c# string winforms

109
推荐指数
1
解决办法
5万
查看次数

最小化app到系统托盘

我有一个由C#和Visual Studio 2010提供支持的Windows窗体应用程序.

如何将我的应用程序最小化到系统托盘(而不是任务栏),然后在系统托盘中双击时将其恢复?任何的想法?另外,如何在系统托盘中的图标中创建一些菜单,当我右键单击它时,它会显示一个菜单,如登录,断开连接,连接等等.此外,是否有任何方法可以显示从系统托盘弹出气球?

PS:我已经添加了一个notifyIcon,但我不知道如何使用它.

c# windows winforms

109
推荐指数
5
解决办法
20万
查看次数

右键单击datagridview的上下文菜单

我在.NET winform应用程序中有一个datagridview.我想右键单击一行,弹出一个菜单.然后我想选择复制,验证等内容

如何制作A)弹出菜单B)找到右键单击的行.我知道我可以使用selectedIndex,但我应该能够右键单击而不更改所选内容?现在我可以使用选定的索引,但如果有办法获取数据而不改变选择的内容那么这将是有用的.

c# datagridview contextmenu right-click winforms

108
推荐指数
6
解决办法
22万
查看次数

Windows窗体中是否有内置的确认对话框?

我想创建一个简单的确认对话框,说"请检查信息,如果您确定它是正确的,请单击"确定".

有这样的东西吗?

c# dialog winforms

108
推荐指数
3
解决办法
8万
查看次数