1.如何点击右上角的“关闭”,再执行一次语句后选择关闭。
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND=0x0112;
const int SC_CLOSE=0xF060;
if (m.Msg == WM_SYSCOMMAND && ((int)m.WParam == SC_CLOSE))
{
//加入想要的处理逻辑
return;//阻止窗体关闭
}
base.WndProc(ref m);
}
2。
原因在于数据的长度不符合才造成的。
解决办法当然有多种,一是修改数据库字段大小;二是加强数据强壮性,严格的输入判断。
目前是采用修改数据的方法:alter table1 alter column caller varchar(50)
3.设置字符限制
只能输入数字
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar!=8 && !Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
//或者
if ((e.KeyChar <= 48 || e.KeyChar >=57) && (e.KeyChar != 8) && (e.KeyChar != 46))
{
e.Handled = true;
}
================48代表0,57代表9,8代表空格,46代表小数点
//或者
if ((e.KeyChar > '9' || e.KeyChar < '0') && (e.KeyChar != 8))
{
e.Handled = true;
}
private void textBox1_Validating(object sender, CancelEventArgs e)
{
const string pattern = @"^\d+\.?\d+$";
string content = ((TextBox)sender).Text;
if (!(Regex.IsMatch(content, pattern)))
{
errorProvider1.SetError((Control)sender, "只能输入数字!");
e.Cancel = true;
}
else
errorProvider1.SetError((Control)sender, null);
}
只能输入汉字
private void txtName_KeyPress(object sender, KeyPressEventArgs e)
{
Regex rg = new Regex("^[\u4e00-\u9fa5\b]$"); //\b是退格键
if (!rg.IsMatch(e.KeyChar.ToString()))
{
e.Handled = true;
}
}
//或者
private void txtName_KeyPress(object sender, KeyPressEventArgs e)
{
Regex rg = new Regex("^[\u4e00-\u9fa5]$");
if (!rg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != '\b')
{
e.Handled = true;
}
}
只能输入字母
private void txtOldPwd_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= 'a' && e.KeyChar <= 'z') || (e.KeyChar >= 'A' && e.KeyChar <= 'Z'))
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
4。时间跨度结构:一个表示时间间隔。
TimeSpan midtime = DateTime.Parse(txtDownTime.Text) - DateTime.Parse(txtUpTime.Text);
//时间间隔
5.清空
#region 清空
private void btnClean_Click(object sender, EventArgs e)
{
Control a = new Control();
this.Clear(a);
}
public void Clear(Control ctrl)
{
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
c.Text = "";
}
if (c is ComboBox)
{
//c.Text = "";
ComboBox cb = c as ComboBox;
cb.SelectedIndex = -1;
}
dataGridView1.DataSource = null;
}
}
#endregion
6.填充整个Panel
private void lblModify_Click(object sender, EventArgs e)
{
FrmModify frm = new FrmModify();
frm.FormBorderStyle = FormBorderStyle.None;
frm.Dock = DockStyle.Fill;
frm.TopLevel = false;
this.panel4.Controls.Clear();
this.panel4.Controls.Add(frm);
frm.Show();
}
7.窗体位置
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
int x = (int)(0.5 * (this.Width - panel1.Width));
int y = (int)(0.5 * (this.Height- panel1.Height));
//int y = panel1.Location.Y;
panel1.Location = new System.Drawing.Point(x, y);
}
//或者
Rectangle rect=SystemInformation.WorkingArea;
int x=(rect.Width - frm.Size.Width)/2;
int y= (rect.Height - frm.Size.Height)/2;
frm.StartPosition=FormStartPostion.Manual;
frm.Location=(Point)new Size(x,y);
Rectangle rect = SystemInformation.WorkingArea;
panel1.Location = new Point(Convert.ToInt32 ((rect.Width-panel1.Width)*0.5), Convert.ToInt32((rect.Height - panel1.Height) * 0.5));
panel1.Height = Convert.ToInt32(rect.Height * 1.2);
panel1.Width = Convert.ToInt32(rect.Width * 1.2);