C#(Winformのいくつかの小さな知識点)
3157 ワード
1.WinFormで複数のコントロールに1つのイベントを共有させる方法:Ctrlキーを押しながら、複数のコントロールを一度に選択し、共有イベントを選択し、ダブルクリックすればよい.たとえば、複数のButtonを選択し、イベント内でButtonのクリックイベントを見つけ、ダブルクリックしてClickイベントにコードを記述することで、複数のコントロールが1つのイベントを共有できます.
2.WinFormでDataGridViewを使用してデータベースにデータをバインドすると、中国語と英語の列名が同時に表示されるトラブルが発生します.この場合、1行のコードで英語の列を明示的に表示するだけで、中国語の列名だけを表示することができます.サンプルコード:
3.WinFormでコンテナコントロール、たとえばGroupBox,Panelであれば、その中のすべてのコントロールのEnabled属性がfalseであるようにするには、コンテナコントロールのEnabled属性をfalseに変更するだけでこの効果を実現できます.サンプルコード:
4.Winformでフォームを空にする簡単な方法は、次のように書くことができます.
しかし、もし私たちがすべてのコントロールではなく、コンテナのコントロールを空にしたいなら、私たちはどうすればいいのでしょうか.私たちは
5.Winformフォームにスクロール字幕を追加するには、3つのコントロールが必要です.1つのLabelコントロール、2つのButtonコントロール、1つのTimerコントロール、Timerコントロールで文字のスクロール速度を制御します.Timerコントロールを記述するtickイベントのサンプルコードは、次のとおりです.
次に、字幕スクロールの開始と停止を制御するためのButton 1とButton 2のクリックイベントを作成する.サンプルコードは次のとおりです.
デバッグを開始し、効果をプレビューします.
2.WinFormでDataGridViewを使用してデータベースにデータをバインドすると、中国語と英語の列名が同時に表示されるトラブルが発生します.この場合、1行のコードで英語の列を明示的に表示するだけで、中国語の列名だけを表示することができます.サンプルコード:
this.DataGridView1.AutoGenerateColumns=false;
3.WinFormでコンテナコントロール、たとえばGroupBox,Panelであれば、その中のすべてのコントロールのEnabled属性がfalseであるようにするには、コンテナコントロールのEnabled属性をfalseに変更するだけでこの効果を実現できます.サンプルコード:
this.Panel1.Enabled=false;
4.Winformでフォームを空にする簡単な方法は、次のように書くことができます.
public void Clear()
{
foreach(Control c in this.Controls)
{
if(c is TextBox)
{
c.Text=string.Empty;
}
if(c is CheckBox)
{
CheckBox chb=c as CheckBox;
chb.Checked=false;
}
}
}
しかし、もし私たちがすべてのコントロールではなく、コンテナのコントロールを空にしたいなら、私たちはどうすればいいのでしょうか.私たちは
foreach this.Controls this.Panel1.Controls
を必要とします.5.Winformフォームにスクロール字幕を追加するには、3つのコントロールが必要です.1つのLabelコントロール、2つのButtonコントロール、1つのTimerコントロール、Timerコントロールで文字のスクロール速度を制御します.Timerコントロールを記述するtickイベントのサンプルコードは、次のとおりです.
private void Timer1_Tick(object sender,EventArgs e)
{
Label1.Left-=2; //Label 2
if(this.Label1.Right<0)
{
this.Label1.Left=this.Width;
}
}
次に、字幕スクロールの開始と停止を制御するためのButton 1とButton 2のクリックイベントを作成する.サンプルコードは次のとおりです.
//
private void Button1_Click(object sender,EventArgs e)
{
this.Timer1.Enabled=true;
}
//
private void Button2_Click(object sender,EventArgs e)
{
this.Timer2.Enabled=false;
}
デバッグを開始し、効果をプレビューします.