单击双击事件未运行。只有Cellclick事件被执行

时间:2010-06-22 12:40:32

标签: c# winforms

我在窗口窗体应用程序中为datagridview提供了cellclick和celldoubleclick两个事件。 问题是,当我双击时,只触发了单元格事件,因为它无法确定单击或双击。

我搜索了这个,发现计时器可能是解决方案..但是怎么做? 请帮忙

2 个答案:

答案 0 :(得分:2)

您可能应该尝试找出为什么双击没有被解雇。回答你的问题:你确实需要一个计时器,其间隔你设置为双击时间:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        timer1.Interval = SystemInformation.DoubleClickTime;
        timer1.Tick += delegate { timer1.Enabled = false; };
    }

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {
        if (timer1.Enabled) {
            timer1.Enabled = false;
            // Do double-click stuff
            //...
        }
        else {
            timer1.Enabled = true;
            // Do single-click stuff
            //...
        }
    }
}

答案 1 :(得分:0)

我为此建立了一些解决方案: 在您的表单中添加计时器

 import pyodbc 
 import pandas 
 import os 
 import sys 
 import struct


 print("running as {0}-bit".format(struct.calcsize("P") * 8))

 sources = pyodbc.dataSources() dsns = list(sources.keys()) dsns.sort()
 sl = [] 
 for dsn in dsns:
     sl.append('%s [%s]' % (dsn, sources[dsn])) print('\n'.join(sl))

 print(pyodbc.drivers())

 try:
     currdir = os.path.abspath(__file__) 

 except NameError: 
 import sys 
 currdir = os.path.abspath(os.path.dirname(sys.argv[0])) 

 DBfile = os.path.join(currdir, 'UNION.accdb') 
 cnxn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' %DBfile) 
 sql = "Select * FROM pivooo" df = pandas.read_sql(sql,cnxn)

 df = df.set_index('AGR_NAME') res = df.div(df.sum(axis=1), axis=0)

 pandas.options.display.float_format = '{:.2f}%'.format

 print(res.reset_index())

希望这会有所帮助^^