小编OIO*_*OIO的帖子

C#ListView DragDrop事件方法每次执行两次

该方法连续执行两次,没有明显的理由这样做.它发生在VS2010 Express(4.0)和VS2008(3.5)中.

public GUI()
{
    InitializeComponent();
    this.lvwFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragDrop);
    this.lvwFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragEnter);
}  
private void lvwFilesAdd(string path, string[] paths)
{ ... }  
private void lvwFilesWrite()
{ ... }  
private void lvwFiles_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
        e.Effect = DragDropEffects.Copy;
    else
        e.Effect = DragDropEffects.None;
}  
private void lvwFiles_DragDrop(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        var paths = (string[])e.Data.GetData(DataFormats.FileDrop);
        var path = Path.GetDirectoryName(paths[0]);
        lvwFilesAdd(path, paths);
        lvwFilesWrite();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# events listview drag-and-drop

6
推荐指数
1
解决办法
2520
查看次数

WinForm - TabStop不工作

我有一个带有3个组合框的WinForm,一个带有组合框,另外两个带有单选按钮.我将所有这些和他们的子控件设置为"TabStop = false",但是当我使用TAB循环时,最后两个组框中每个组中当前选择的单选按钮会被聚焦.

如果没有办法改变这种行为,那么抓住并将焦点移开会有什么好事?我找不到"OnFocus"活动.


解决方案是设置一个方法(下面的代码)来处理表单中每个单选按钮的"Enter"事件(如果这是你想要的).

实际上,我只是为第一组组的单选按钮做了它并且它工作,第二组框的单选按钮没有得到焦点,即使他们的"Enter"事件没有被处理.这不是您期望的行为.

private void radiobuttonXGroup1_Enter(object sender, EventArgs e)
{
   SomeOtherControl.Focus();
}
Run Code Online (Sandbox Code Playgroud)

在*.Designer.cs文件中,您可以编辑每个Enter事件(对于每个单选按钮)以指向一个事件处理程序(上述方法).

this.radiobutton1Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
this.radiobutton2Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
this.radiobutton3Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
Run Code Online (Sandbox Code Playgroud)

c# groupbox tabstop radio-button winforms

3
推荐指数
2
解决办法
5608
查看次数

高效的十六进制操作

我有一个由十六进制值表示的字节数组,这些是持续时间.数据可以转换为整数值并乘以常数以获得时序.数据解码将作为一系列十六进制字符串保存到文件中.什么是操纵十六进制值的有效方法?


我在处理数据格式时正在考虑性能问题,因为我必须在不同阶段使用多种格式(计算,数据显示等).大多数示例显示从byte []到十六进制字符串("1A 3C D4")的转换,反之亦然,但我正在寻找替代方案,即转换为Int16并使用char []数组.

c# hex

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

标签 统计

c# ×3

drag-and-drop ×1

events ×1

groupbox ×1

hex ×1

listview ×1

radio-button ×1

tabstop ×1

winforms ×1