菜單和工具欄: 1. MenuStrip --頂部菜單分割線1. “-”號 ,2. 右鍵 插入 split 快捷鍵:每一個項右鍵屬性的最下麵可以設置快捷鍵不管選項隱藏還是菜單隱藏,快捷鍵都管用 2、ContextMenuStrip:右鍵菜單 每個控制項都可以有右鍵菜單 3、StatusStript:底 ...
多窗體:
1、哪個是主窗體
問題:主窗體隱藏了,關閉其它窗體後,沒有將主窗體顯示/關閉,那麼程式就關不上了
Form2:---
Form1 F1 = null;
public Form2(Form1 f1)
{
InitializeComponent();
F1 = f1;
}
Form1:---
Form2 f2 = new Form2(this);
f2.Show();
this.Hide();
點擊1登錄到2 ,1消失 。 關閉2, 1、2 都消失
1、構造函數傳值,將窗體傳到另一個窗體中去
用Form2 窗體屬性里的 Fromclosing 雙擊進去 F1.Close(); 關閉主窗體F1
窗體屬於頂級控制項,不能被放在其他容器里
2、窗體只能打開一個
創建一個全局的泛型集合,為了放置全部打開的窗體
List<Form> Flist = new List<Form>();
1、在窗體打開之前,判斷集合中是否有name一致的窗體,如果有就說明已經打開了,就不要再打開了
bool has = false;
Form2 f2 = new Form2();
foreach (Form F in Flist)
{
if (F.Name == f2.Name)
{
has = true;
}
}
if (has)
{
}
else
{
Flist.Add(f2);
f2.Show();
}
問題:當窗體打開了,關閉後,就無法再次打開了
辦法:當窗體關閉時,清除Form1中集合中的此窗體對象記錄
form1:
public void DelectForm(Form F)
{
Flist.Remove(F);//移除
}
form2:
public partial class Form2 : Form
{
Form1 F1 = null;
public Form2( Form1 f1)
{
InitializeComponent();
F1 = f1;
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (F1 != null)
{
F1.DelectForm(this);
}
}
問題:當窗體已經打開,再次點擊打開按鈕,不會將已打開的窗體重新顯示並焦點進入
辦法:
找到已打開對象,將WindowState屬性設置為:Normal
找到已打開窗體的對象,使用Focus方法;F.Focus
最小化,也彈出, 焦點進入
F.WindowState = FormWindowState.Normal;
3、窗體之間的傳值和控制
傳值:構造函數傳值
form1:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "liuxin" && textBox2.Text == "1234")
{
Form2 f2 = new Form2(this,textBox1.Text );
f2.Show();
this.Hide();
form2:
public partial class Form2 : Form
{
Form1 F1 = null;
public Form2(Form1 f1,string Uname)
{
InitializeComponent();
F1 = f1;
label1.Text = "歡迎回來"+Uname;
}
}
控制:第一步,找到窗體對象,第二步,將窗體對象的控制項值更改
註意:要將窗體中的對象訪問許可權修改
訪問許可權修改為 public
F1.button1.Text = textBox1.Text;
4、提示框類型的窗體
ShowDialog();
作用:點開第二個窗體 不關閉 不能點上一個窗體
Form2 f2 = new Form2(this,"111");
f2.ShowDialog();
TabIndex 更改數字 按數字大小 依次用tab 往下走
TabStop 到某個上面停止
窗體--
雜項--
Acc.....Button -- 選擇按鈕 用回車啟動
Can.....Button -- esc啟用 取消
------------------------------------------------------
菜單和工具欄:
1. MenuStrip --頂部菜單
分割線1. “-”號 ,2. 右鍵 插入 split
快捷鍵:每一個項右鍵屬性的最下麵可以設置快捷鍵
不管選項隱藏還是菜單隱藏,快捷鍵都管用
2、ContextMenuStrip:
右鍵菜單 每個控制項都可以有右鍵菜單
3、StatusStript:
底部菜單
4、ToolStrip
工具條
5、ToolStripContainer
工具條容器 四邊 移動