我已经完成了我的C#应用程序,但是我有一点问题:
当我尝试在另一台PC上运行我的应用程序时,我总是需要安装.NET Framework 4.0.
如果没有从互联网安装框架,它有什么可以做的吗?
我在InnoSetup之前尝试过VB6应用程序,但我不确定它是否适用于.NET 4.0!
有任何想法吗?
要立即陷入困境,这是一个非常基本的例子:
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应用程序显示控制台?
我需要获取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) 很多人都回答了如何将枚举绑定到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)
有没有人有任何想法如何做到这一点?
很长一段时间以来,我一直坚持使用Windows Forms开发(从VB6开始,一直到C#.NET 4.5),而且我已经达到了Windows Forms可以做的极限,两者都使用纯.NET和本机代码的特殊效果.
我知道WPF是未来(目前),Windows Forms正在放慢成为一种被弃用的技术.
我曾经尝试过学习WPF和XAML,但是我遇到了WPF的新设计师......与Windows Forms设计师相比,它似乎很难使用...当然......这只是一个学习曲线,在某些时候,我打算继续学习WPF.
与此同时,我想知道.NET的WPF设计器是否有更适合Windows Forms开发人员的替代方案?
我有一个非常简单的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) 我在这做错了什么?
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#和Visual Studio 2010提供支持的Windows窗体应用程序.
如何将我的应用程序最小化到系统托盘(而不是任务栏),然后在系统托盘中双击时将其恢复?任何的想法?另外,如何在系统托盘中的图标中创建一些菜单,当我右键单击它时,它会显示一个菜单,如登录,断开连接,连接等等.此外,是否有任何方法可以显示从系统托盘弹出气球?
PS:我已经添加了一个notifyIcon,但我不知道如何使用它.
我在.NET winform应用程序中有一个datagridview.我想右键单击一行,弹出一个菜单.然后我想选择复制,验证等内容
如何制作A)弹出菜单B)找到右键单击的行.我知道我可以使用selectedIndex,但我应该能够右键单击而不更改所选内容?现在我可以使用选定的索引,但如果有办法获取数据而不改变选择的内容那么这将是有用的.
我想创建一个简单的确认对话框,说"请检查信息,如果您确定它是正确的,请单击"确定".
有这样的东西吗?
c# ×10
winforms ×10
.net ×3
windows ×2
audio ×1
combobox ×1
compilation ×1
contextmenu ×1
controls ×1
datagridview ×1
dialog ×1
enums ×1
installation ×1
right-click ×1
string ×1
vb.net ×1
wpf ×1