
*************************
*C#语言本身*
*************************
===字符串式化输出string.Format()===
string.Format("insert into product (label,type_id,brand_id,model) values ('{0}','2','2','4600')",textBox1.Text.Trim());
说明:{0}代表是方法里逗号后面的第一个变量:textBox1.Text.Trim()得到的是一个去前后空的字符串。{0,6,1}大括号里可以用这样的方式来式化输出变量,具体参考相关内容。
*************************
*VS通用技巧*
*************************
===Application类 ===
Application.DoEvents() //解释界面假死问题
解释:当运行 Windows 窗体时,它将创建新窗体,然后该窗体等待处理事件。该窗体在每次处理事件时,均将处理与该事件关联的所有代码。所有其他事件在队列中等待。在代码处理事件时,应用程序并不响应。例如,当将另一窗口拖到该窗口前面时,该窗口不重新绘制。
如果在代码中调用 DoEvents,则您的应用程序可以处理其他事件。例如,如果您有向 ListBox 添加数据的窗体,并将 DoEvents 添加到代码中,那么当将另一窗口拖到您的窗体上时,该窗体将重新绘制。如果从代码中移除 DoEvents,那么在按钮的单击事件处理程序执行结束以前,您的窗体不会重新绘制。
===布局类 控件的Anchor与Dock属性===
Anchor是锚定的意思,它是设置窗体内的控件与窗体的相对锚定位置。窗体大小变化对控件大小无影响,只对控件位置有影响。
Dock是停靠停泊的意思,它是设置窗体内的控件停在窗体的哪个部位。richtextbox 换行窗体大小变化对控件大小有影响,对控件位置也有影响。
Dock的顺序(也就是窗体加载被停靠的控件的顺序):
有时候我们发现,如果有二个被停靠的控件Panel1 与 Panel2 ,这时设置panel1的dock属性为top,panel2的dock属性为left,
在窗体上我们看到panel1占据了整个窗体顶部,而panel2只在窗体剩下的部分占据左边部分。如果我们的要求正好相反:
需要panel2占据整个窗体的左部,panel1只占据窗体剩下部分的顶部,这时怎么办呢?
通过改变form自动生成代码中的加载顺序就可以,越晚加载的控件越有优先权。
例如:
找到form的自动生成窗体代码部分中的
this.Controls.Add(this.panel1);
this.Controls.Add(this.panel2);
这说明panel2比panel1要晚一点加载,这样的话panel2就会有优先权,它将占据在dock属性中设置整个left部分,
而panel1只能占据窗体剩下的top部分。
如果把上面的加载顺序改一下:
this.Controls.Add(this.panel2);
this.Controls.Add(this.panel1);
这时panel1比panel2要晚一点加载,这样的话panel1就会有优先权,它将占据在dock属性中设置整个top部分,
而panel2只能占据窗体剩下的left部分。
===动态菜单 如何在菜单上动态地为DMI多窗体添加窗体项===
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-34656-1.html
那里的岛礁有许多在自然状况下是当涨潮时处于海面以下的
有舍有得