标签: winforms

Winforms - 打开外部pdf文件

我已经用Google搜索并搜索了stackoverflow,但我找不到合适的答案.

我想要做的就是在表单上放置一个按钮,此按钮后面的代码将包含对存储pdf文件的硬盘上的位置的引用.我想要的就是拥有它,以便当用户点击按钮时,pdf文件在机器选择的pdf阅读器中打开(这是一个内部应用程序,因此访问它的2-3台机器将始终使用adobe acrobat).

我不知道内置的.NET类中哪些(如果有的话)可以做到这一点.

编辑:将会有100个pdf全部添加,我将在我的系统中为每个订单提供一个pdf的路径引用,该路径指向PDF所在的文件存储服务器.PDF不是本地托管的.

如何在最简单的意义上做到这一点?

pdf winforms

2
推荐指数
1
解决办法
4140
查看次数

在C#中显示密码TextBox的纯文本

我有一个密码字段的文本框,我想添加一个复选框,将密码切换为纯文本.

我做了以下编码.

txtpwd.PasswordChar = (char)(byte)32;
Run Code Online (Sandbox Code Playgroud)

但这只是隐藏不显示文本框字段中输入内容的纯文本.

任何身体都可以帮忙?

c# passwords checkbox textbox winforms

2
推荐指数
1
解决办法
3276
查看次数

正确设置MdiParent背景图像

我使用下面的代码来设置MdiParent表单的背景图像,它运行良好,但是当我点击最大化按钮时,BackgroundImage在右侧和底部边缘重复(即右侧和底侧图像部分重复),怎么做我避免这种情况并正确显示图像?

public Parent()
{
    InitializeComponent();

    foreach (Control ctl in this.Controls)
    {
        if (ctl is MdiClient)
        {
            ctl.BackgroundImage = Properties.Resources.bg;
            ctl.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# winforms

2
推荐指数
1
解决办法
9744
查看次数

备份类未显示在Microsoft.SqlServer.Management.Smo参考中

我想在C#Windows窗体应用程序中添加备份和还原功能.为此我插入

我的代码中的Microsoft.SqlServer.Management.Smo引用..但我无法在此引用中看到备份和还原类.

请帮助我.

c# smo winforms visual-studio-2012

2
推荐指数
1
解决办法
2158
查看次数

如何在WinForms中检测用户对NumericUpDown字段的更改?

NumericUpDown我的表单上有很多字段,我想要在用户编辑其中一个字段时重新计算所有字段.

毋庸置疑,我不能只使用ValueChanged事件,因为它也是由程序化变化触发的,这给我们带来了无限循环.

那么如何区分用户自制的调整和程序化的属性变化呢?

我需要一个用户能够双向编辑字段 - 通过单击增量/减量按钮和直接编辑字段文本.

c# numericupdown winforms

2
推荐指数
1
解决办法
4398
查看次数

在WinForms菜单中有一种批量更新的方法

我在我的应用程序中构建一些动态上下文菜单,代码如下:

mi = new ToolStripMenuItem( caption ) { Tag = c, Enabled = true };
context_menu.Items.Insert( n, mi );
mi.Click += new EventHandler( ContextClick);
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,如果项目数量很大(比如1000),则构建菜单可能需要几分钟.我意识到菜单中的1000个项目是不寻常的,但这里的问题是速度.对于组合框和列表框,有一个BeginUpdate()/ EndUpdate()可以放在这种操作中.菜单有机制吗?

"类似"代码在VB6项目中运行,执行操作所需的时间不到10秒.

c# performance menu winforms

2
推荐指数
1
解决办法
152
查看次数

使用ComboBox显示工具提示(dropdownmenu)

我正在显示一个小工具提示,但如果我在下拉菜单中更改选定项目/文本,工具提示会显示旧文本和新文本.我希望它只显示新文本.

private void optionsvalueComboBox_MouseHover(object sender, EventArgs e)
{
    ToolTip buttonToolTip = new ToolTip();
    buttonToolTip.ToolTipTitle = "Value";
    buttonToolTip.UseFading = true;
    buttonToolTip.UseAnimation = true;
    buttonToolTip.IsBalloon = true;
    buttonToolTip.ShowAlways = true;
    buttonToolTip.AutoPopDelay = 5000;
    buttonToolTip.InitialDelay = 1000;
    buttonToolTip.ReshowDelay = 0;

    buttonToolTip.SetToolTip(optionsvalueComboBox, optionsvalueComboBox.Text);
}
Run Code Online (Sandbox Code Playgroud)

c# tooltip winforms

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

包含多个值的字符串

我正在制作一个小型登录表单.用户可以使用用户名登录:Test,test1,test2,test3

是否可以创建一个字符串:

string username("test",  "test1", "test2", "test3");
Run Code Online (Sandbox Code Playgroud)

并使用这样的代码:

if (usernameTextBox.Text == username)
{
    //Something
}
Run Code Online (Sandbox Code Playgroud)

因此,当用户写入我在字符串中所做的任何选择时,他都可以登录.

c# string winforms

2
推荐指数
1
解决办法
8232
查看次数

如何动态或在运行时设置PropertyGrid的DefaultValueAttribute?

我正在定义一个与PropertyGrid控件一起使用的自定义类.比如,其中一个属性定义如下:

[CategoryAttribute("Section Name"),
DefaultValueAttribute("Default value"),
DescriptionAttribute("My property description")]
public string MyPropertyName
{
    get { return _MyPropertyName; }
    set { _MyPropertyName = value; }
}

private string _MyPropertyName;
Run Code Online (Sandbox Code Playgroud)

如您所见,DefaultValueAttribute定义了属性的默认值.这种默认值用于两种情况:

  1. 如果此属性值从默认值更改,则 PropertyGrid控件将以粗体显示,并且

  2. 如果我调用ResetSelectedProperty方法PropertyGrid,它会将该默认值应用于所选单元格.

这个概念很好,除了一个限制DefaultValueAttribute.它只接受一个常量值.所以我很好奇,我可以动态地设置它,例如,从构造函数或稍后的代码中设置它吗?

编辑:我能够找到这个代码让我读到DefaultValueAttribute:

AttributeCollection attributes = TypeDescriptor.GetProperties(this)["MyPropertyName"].Attributes;
DefaultValueAttribute myAttribute = (DefaultValueAttribute)attributes[typeof(DefaultValueAttribute)];
string strDefaultValue = (string)myAttribute.Value;
Run Code Online (Sandbox Code Playgroud)

问题是,你如何设置它?

.net c# reflection propertygrid winforms

2
推荐指数
1
解决办法
4256
查看次数

C#Winforms中的文本框验证 - 应该只允许1-100之间的数字

您好抱歉这是一个简单的问题,但如果有人可以指导我的代码,将不胜感激.我在Winform中说了50个文本框.所有应该只允许数字值,也只允许1-100.我该如何确保此验证?

我的想法是在使用Ascii值的keypress事件中使用e.Keychar来限制用户只键入数字.另外,我可以确保在属性中的Set中进行此验证吗?但我不知道我是否正确,也不知道正确的代码.请帮我.

.net c# winforms c#-4.0

2
推荐指数
1
解决办法
1517
查看次数