我已经用Google搜索并搜索了stackoverflow,但我找不到合适的答案.
我想要做的就是在表单上放置一个按钮,此按钮后面的代码将包含对存储pdf文件的硬盘上的位置的引用.我想要的就是拥有它,以便当用户点击按钮时,pdf文件在机器选择的pdf阅读器中打开(这是一个内部应用程序,因此访问它的2-3台机器将始终使用adobe acrobat).
我不知道内置的.NET类中哪些(如果有的话)可以做到这一点.
编辑:将会有100个pdf全部添加,我将在我的系统中为每个订单提供一个pdf的路径引用,该路径指向PDF所在的文件存储服务器.PDF不是本地托管的.
如何在最简单的意义上做到这一点?
我有一个密码字段的文本框,我想添加一个复选框,将密码切换为纯文本.
我做了以下编码.
txtpwd.PasswordChar = (char)(byte)32;
Run Code Online (Sandbox Code Playgroud)
但这只是隐藏不显示文本框字段中输入内容的纯文本.
任何身体都可以帮忙?
我使用下面的代码来设置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#Windows窗体应用程序中添加备份和还原功能.为此我插入
我的代码中的Microsoft.SqlServer.Management.Smo引用..但我无法在此引用中看到备份和还原类.
请帮助我.
NumericUpDown我的表单上有很多字段,我想要在用户编辑其中一个字段时重新计算所有字段.
毋庸置疑,我不能只使用ValueChanged事件,因为它也是由程序化变化触发的,这给我们带来了无限循环.
那么如何区分用户自制的调整和程序化的属性变化呢?
我需要一个用户能够双向编辑字段 - 通过单击增量/减量按钮和直接编辑字段文本.
我在我的应用程序中构建一些动态上下文菜单,代码如下:
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秒.
我正在显示一个小工具提示,但如果我在下拉菜单中更改选定项目/文本,工具提示会显示旧文本和新文本.我希望它只显示新文本.
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) 我正在制作一个小型登录表单.用户可以使用用户名登录: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)
因此,当用户写入我在字符串中所做的任何选择时,他都可以登录.
我正在定义一个与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定义了属性的默认值.这种默认值用于两种情况:
如果此属性值从默认值更改,则
PropertyGrid控件将以粗体显示,并且
如果我调用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)
问题是,你如何设置它?
您好抱歉这是一个简单的问题,但如果有人可以指导我的代码,将不胜感激.我在Winform中说了50个文本框.所有应该只允许数字值,也只允许1-100.我该如何确保此验证?
我的想法是在使用Ascii值的keypress事件中使用e.Keychar来限制用户只键入数字.另外,我可以确保在属性中的Set中进行此验证吗?但我不知道我是否正确,也不知道正确的代码.请帮我.
winforms ×10
c# ×9
.net ×2
c#-4.0 ×1
checkbox ×1
menu ×1
passwords ×1
pdf ×1
performance ×1
propertygrid ×1
reflection ×1
smo ×1
string ×1
textbox ×1
tooltip ×1