我在窗口窗体应用程序中为datagridview提供了cellclick和celldoubleclick两个事件。 问题是,当我双击时,只触发了单元格事件,因为它无法确定单击或双击。
我搜索了这个,发现计时器可能是解决方案..但是怎么做? 请帮忙
答案 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())
希望这会有所帮助^^