我写了一个usercontrol,实质上是一个小部件的调色板.当用户右键单击我在控件上绘制的其中一个小部件时,我希望允许用户删除所选小部件.
在我的usercontrol的MouseClick事件处理程序中,我确定用户单击了哪个窗口小部件.然后我检查鼠标按钮是否是正确的按钮.如果是这样,我会显示一个菜单,允许用户删除小部件:
if (e.Button == MouseButtons.Right)
{
ContextMenu deleteMenu = new ContextMenu();
MenuItem deleteItem = new MenuItem("Delete...", new System.EventHandler(this.onDeleteMenuItem_Click));
deleteMenu.MenuItems.Add("Delete");
deleteMenu.Show(this, new Point(mouseXPosition, mouseYPosition));
}
Run Code Online (Sandbox Code Playgroud)
我的这个项目的处理程序是:
private void onDeleteMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine("Deleting...");
}
Run Code Online (Sandbox Code Playgroud)
当我右键单击时,会显示菜单,但处理程序永远不会被调用.我究竟做错了什么?
在a Windows Form,同时使用tabControl1如何从一个选项卡切换到另一个(即tabPage1到tabPage2)按钮单击tabPage1中.
tabPage2.Show();
tabControl1.SelectedIndex = tabPage2;
Run Code Online (Sandbox Code Playgroud)
等但不给任何o/p ...请帮助
假设我有这个课程:
class foo
{
public foo(Guid guid)
{
//some code here
}
public foo(Guid guid, bool myBool)
{
//some other code here
}
//Here I have a bunch of method/properties
public void GenX(bool french, int width)
{
//my method implementation
}
}
Run Code Online (Sandbox Code Playgroud)
我有另一个基本上完全相同的类,foo除了这个方法的实现,public GenX(bool french, int width)并且construtor必须foo与实现不同.
如果我以bar这种方式实现编译器抱怨:'foo' does not contain a constructor that takes '0' arguments
class bar : foo
{
public bar(Guid guid, bool myBool)
{
//some code here …Run Code Online (Sandbox Code Playgroud) 我有以下c#方法从提议的名称中获取有效的文件名:
public static string GetValidFilename(string fileNameCandidate)
{
var invalids = System.IO.Path.GetInvalidFileNameChars();
var _name = fileNameCandidate.ToCharArray();
var validName = _name.Except(invalids).ToArray();
return new string(validName);
}
Run Code Online (Sandbox Code Playgroud)
我所期望的是原始名称,其中删除了残留的无效字符.但是,我得到的是具有无效文件名字符的原始名称和其他删除的名称.
例如,如果我使用"ems:almcc_srr_view"作为输入参数调用方法,我期望"emsalmcc_srr_view作为输出.我得到的是"emsalc_rviw"作为输出.我错过了什么?
假设我有一个基类
class baseClass
{ }
Run Code Online (Sandbox Code Playgroud)
另一个继承自那个的类 baseClass
class foo : baseClass
{ }
Run Code Online (Sandbox Code Playgroud)
我试图直接将其强制转换,(baseClass)foo但编译器说它无法完成.
有没有办法foo只获得baseClass?
我正在编写一个记录用户空闲时间的程序,但是当我尝试运行该程序时,它会抛出一个Stack Overflow异常.
这些是我的自定义事件
public void OnInactive(EventArgs e)
{
this.OnInactive(new EventArgs());
do
{
var idle2 = GetIdleTime();
GetIdleTime();
System.Diagnostics.Debug.WriteLine(idle2);
}
while (timer.Interval > 5000);
}
public void OnActive(EventArgs e)
{
this.OnActive(new EventArgs());
if (timer.Interval < 5000)
{
var idle3 = GetIdleTime();
System.Diagnostics.Debug.WriteLine(idle3);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经打破了代码,试图找到问题的根源,这似乎在于this.OnInactive(new EventArgs());,但是我很难解决如何解决这个问题,因为我是自定义事件的初学者并且没有编码C#很久了.
对此问题的任何和所有帮助将不胜感激!
在先感谢=]