Tag: winforms

用鼠标移动绘制的线条

我试图通过用鼠标抓住它来移动绘制的线条。 该行已经使用Graphics.DrawLine(Pen P, Point A, Point B)绘制。 创建Line并在表单上绘制它绝对没有问题。 我试过了: 将行添加到GraphicsPath – 这甚至不绘制OnPaint行。 检查MouseEventArgs e.Location是否与一些基本代数一致(我现在扔掉的计算) 总结一下:我想抓住线并将其拖到某处,但我甚至无法检查e.Location是否在线上,我该怎么做? 编辑:这是我使用GraphicsPath时代码的外观。 当我不使用GraphicsPath我有: if (s.thisShape == ShapeType.Line) { g.DrawLine(pen, s.p1, s.p2); } else { … }` 在drawingShapes方法中。 来自drawStuff:Usercontrol类: private void drawStuff_MouseDown(object sender, MouseEventArgs e) { pointRegion = e.Location; for (int i = 0; i < Shapes.Count; i++) { if (Shapes[i].Region.IsVisible(pointRegion)) { […]

参数计数与Invoke不匹配?

下面的代码块导致错误:TargetParameterCountException未被用户代码处理。 参数计数不匹配。 public void AddListViewItem(string[] Data) { if (InvokeRequired) { Invoke(new Action(AddListViewItem), Data); } else { ListViewData.Items.Add(Data[0]).SubItems.AddRange ( new string[] { Data[1], Data[2], Data[3], } ); } } 有任何想法吗?

设置OpenFileDialog / SaveFileDialog的起始位置

对于WinForm应用程序中的任何自定义对话框(窗体),我可以在显示它之前设置其大小和位置: form.StartPosition = FormStartPosition.Manual; form.DesktopBounds = MyWindowPosition; 在处理多个监视器时,这一点尤为重要。 如果没有此类代码,当您从已拖动到第二个监视器的应用程序打开对话框时,对话框将显示在主监视器上。 这表示用户体验不佳。 我想知道是否有任何钩子来设置标准.NET OpenFileDialog和SaveFileDialog(没有StartPosition属性)的位置。

按ENTER键阻止Windows窗体DataGridView移动到下一行

我知道这个问题(或其变体)已经出现过几次。 但到目前为止,我还没有找到适合我的解决方案。 我正在使用包含DataGridView的C#编写Windows窗体UserControl,以呈现员工数据的只读集合,作为一种美化的选择列表。 网格是只读的(填充在control_load上)并将FullRowSelect设置为选择方法。 我希望用户能够双击鼠标或使用当前行上的Enter键来选择Id值表单,该行将被订阅者接收以便在其他地方处理。 在分配我选择的员工值后处理KeyDown事件时,我尝试阻止选择移动到下一行。 这种方法很好, 除非 CurrentCell.RowIndex为零。 有谁知道我怎么能让这个工作为CurrentCell.Rowindex = 0? private void dgvEmployees_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (dgvEmployees.CurrentRow.Cells[0].Value != null) { this.SelectedEmployeeId = (int) dgvEmployees.CurrentRow.Cells[0].Value; this.OnEmployeeSelected(new TestEmployeeGridListEventArgs() { SelectedEmployeeId = this.SelectedEmployeeId, SelectedEmployeeIdentifier = dgvEmployees.CurrentRow.Cells[“Identifier”].Value.ToString() }); } // Prevent pressing moving onto the next row. if (dgvEmployees.CurrentCell.RowIndex > […]

如何通过将dll导入引用来为Winforms的C#.net工具箱添加用户控件?

我有一个用户控件的DLL,我添加到我的项目中的引用。 现在我想从工具箱访问此用户控件,但它不会出现在工具箱中。 我可以通过编写代码来访问它们,但我想在工具箱中使用它,只想将它拖到表单中即可使用。

将文本发送到Microsoft Word 2010中的邮件合并字段

我正在使用以下代码将文本发送到一个简单的单词模板,我目前只用一个MergeField来设置它来测试我可以使用它。 我使用的代码如下: public static void ReplaceMailMergeField(string pWordDoc, string pMergeField, string pValue) { object docName = pWordDoc; object missing = Missing.Value; Word.MailMerge mailMerge; Word._Document doc; Word.Application app = new Word.Application(); app.Visible = false; doc = app.Documents.Open(ref docName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref […]

如何生成.svc文件?

我创建了我的第一个WCF服务并在我的计算机上进行了测试,并且它可以工作。 存在的文件是接口,该接口的实现和app.config文件。 现在是时候在一个真正的IIS服务器上托管它了,我被告知IIS在接收来电时会查找.svc文件。 这是我发现的: IIS中托管的WCF服务在IIS应用程序中表示为特殊内容文件(.svc文件)。 此模型类似于ASMX页面在IIS应用程序内表示为.asmx文件的方式。 .svc文件包含特定于WCF的处理指令(@ServiceHost),该指令允许WCF托管基础结构激活托管服务以响应传入消息。 有人可以指导我如何创建这个文件,以便我可以托管它? 谢谢!

永远不会调用OnPaint覆盖

我已经在这里待了几天,这让我很生气。 我有一个inheritance自System.Windows.Forms.Panel的控件,我试图覆盖OnPaint。 它很简单,直截了当地说它。 public class CollapsiblePanel : System.Windows.Forms.Panel { public CollapsiblePanel() { // // Required for the Windows Form Designer // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // SetStyle ( ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.Selectable , true ); } protected override void OnPaint(PaintEventArgs e) { // […]

ASP.net通过内容页面访问主页变量

我有一个母版页: 然后我有一个公共变量: public partial class AdminMaster : System.Web.UI.MasterPage { protected bool blnShowDialogue = false; 在我的内容页面中,我想设置此变量: blnShowDialogue = true; 所以在我的母版页中我可以得到代码: $(function() { $(“#dialog”).dialog(); } 这有意义吗? 当我尝试Master.blnShowDialogue或blnShowDialogue =等的组合时,似乎没有任何工作。 当前上下文中不存在名称“blnShowDialogue”

WinForm中的日期时间选择器如何选择时间?

可能重复: DateTimePicker:选择日期和时间 我正在使用WinForm DateTime选择器,它在选择日期方面做得很棒,但我不知道该怎么做。 看起来时间与价值相关联,所以也许有办法用它来选择时间? 如果没有内置方法来执行此操作,我将只创建另一个框,并从DateTime选择器修改DateTime值。 谢谢!