C#Window控件及窗體的基本使用-創(chuàng)新互聯(lián)

可視界面通常都用于與用戶進(jìn)行交互,所以是必學(xué)的一部分,

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供屏南網(wǎng)站建設(shè)、屏南做網(wǎng)站、屏南網(wǎng)站設(shè)計、屏南網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、屏南企業(yè)網(wǎng)站模板建站服務(wù),十年屏南做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

C#下的可視界面我覺得在封裝上弄得比較好,頁面屬性都放在Form1.Designer.cs文件的InitializeComponent()函數(shù)里,F(xiàn)orm1.cs文件調(diào)用初始化函數(shù),進(jìn)行相關(guān)的事件的操作(如:經(jīng)常所見的button的Click操作)。在visual studio的工具箱里可以拖動組建,右鍵選擇屬性可以設(shè)置組件的屬性。

簡單的窗口例子,當(dāng)要關(guān)閉窗口的時候彈出對話框:

在Form1.cs文件里新建函數(shù):

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    DialogResult dr = MessageBox.Show("是否關(guān)閉窗體?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
    if (dr == DialogResult.Yes)
    {
        e.Cancel = false;
    }
    else
    {
        e.Cancel = true;
    }
}

在Form1.Designer.cs文件里的InitializeComponent()函數(shù)中設(shè)置:

this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);

this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);

表示窗口的FormClosing屬性通過調(diào)用Form1_FormClosing函數(shù)實現(xiàn)。

窗體可以調(diào)用Show()、Hide()和Close()方法。另外有觸發(fā)窗體事件的Activated事件、Load事件,和FormClosing事件的語法格式類似。

常用控件及其簡單設(shè)置

1.Label控件:

label1.Font = new Font("楷體", 12);
label1.Text = "再累也要開心D";
label2.ForeColor = Color.Blue;

2.TextBox控件:

textBox1.PasswordChar = '@';//根據(jù)自己的喜好設(shè)置密碼顯示的方式
textBox2.UseSystemPasswordChar = true;//設(shè)置默認(rèn)的系統(tǒng)密碼顯示
textBox1.ReadOnly = true;//只讀屬性
textBox1.Multiline = true;//設(shè)置多行顯示

3.RichTextBox控件:(可以顯示字體、顏色、鏈接、文本加載、圖像功能)

實例:button1打開文件、button2打開圖片。richTextBox1顯示文件和圖片內(nèi)容;

設(shè)置richTextBox1的屬性:

richTextBox1.BorderStyle = BorderStyle.Fixed3D;//設(shè)置邊框樣式
richTextBox1.DetectUrls = true;//設(shè)置自動識別超鏈接
richTextBox1.ScrollBars = RichTextBoxScrollBars.Both;//設(shè)置滾動條

點擊button1后顯示打開文件對話框,選擇文件后再richTextBox1中顯示文件內(nèi)容:

OpenFileDialog openfile = new OpenFileDialog();//實例化打開文件對話框
openfile.Filter = "rtf文件(*.rtf)|*.rtf";//設(shè)置文件篩選器
if (openfile.ShowDialog() == DialogResult.OK)
{
    richTextBox1.Clear();//清空文本框
    //加載文件
    richTextBox1.LoadFile(openfile.FileName, RichTextBoxStreamType.RichText);
}

同理,顯示圖片的設(shè)置:

OpenFileDialog openpic = new OpenFileDialog();
openpic.Filter = "bmp文件(*.bmp)|*.bmp|jpg文件(*.jpg)|*.jpg|ico文件(*.ico)|*.ico";
openpic.Title = "打開圖片";
if (openpic.ShowDialog() == DialogResult.OK)
{
    Bitmap bmp = new Bitmap(openpic.FileName);//使用選擇的圖片實例化Bitmap對象
    Clipboard.SetDataObject(bmp, false);//將圖像置于系統(tǒng)剪貼板中
    //判斷richTextBox1控件是否可以粘貼圖片信息
    if (richTextBox1.CanPaste(DataFormats.GetFormat(DataFormats.Bitmap)))
        richTextBox1.Paste();
}

Button控件:

button1.BackgroundImage = Properties.Resources.a;
button1.BackgroundImageLayout = ImageLayout.Stretch;//拉伸圖像
button2.Image = Properties.Resources.a;
button2.ImageAlign = ContentAlignment.MiddleLeft;//設(shè)置圖片對齊方式
button3.FlatStyle = FlatStyle.Flat;//設(shè)置button3的外觀樣式
button3.Text = "確定";
button4.TextAlign = ContentAlignment.MiddleRight;//設(shè)置文本對齊方式

GroupBox控件:(分組控件,其所包含的控件集周圍顯示邊框和標(biāo)題,但沒有滾動條)

TabControl控件:

設(shè)置選項卡的外觀樣式:

tabControl1.Appearance = TabAppearance.Normal;

實例:點擊button1后增加一個選項卡,button2移除一個選項卡

//聲明一個字符串變量,用于生成新增選項卡的名稱
string Title = "新增選項卡 " + (tabControl1.TabCount + 1).ToString();
TabPage tp = new TabPage(Title);
//使用tabcontrol控件的tabpages屬性的add方法添加新的選項卡
tabControl1.TabPages.Add(tp);

移除選項卡:

if (tabControl1.SelectedIndex == 0)
{
    MessageBox.Show("請選擇要移除的選項卡");
}
else
{
    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}

MenuStrip控件(菜單欄——拖動控件就可以進(jìn)行相關(guān)設(shè)置):

另在輸入框輸入“新建(&N)”會在運行時顯示“新建(N)”,可以“Alt+N”來調(diào)用

ToolStrip控件(工具欄——下拉欄有8個不同類型的控件——這個控件沒怎么用,說不太清楚)

Button:包含文本和圖象中可以讓用戶選擇的項;

Label:包含文本和圖象的項,不可以讓用戶選擇,可以顯示超鏈接

SplitButton:在Button的基礎(chǔ)上增加一個下拉列表

DropDownButton:用于下拉列表選擇項

Separator:分隔符

ComboBox:顯示一個Combox的項

TextBox和ProgressBar和ComboBox的意義類似。

StatusStrip控件:

放在窗體的最底部,用于顯示窗體對象的一些相關(guān)信息。

窗體加載時顯示系統(tǒng)當(dāng)前時間:

toolStripStatusLabel1.Text="當(dāng)前時間:"+DateTime.Now.ToLongTimeString();

ListBox控件:

實例:用ListBox顯示獲取到的文件列表

設(shè)置ListBox屬性:

listBox1.HorizontalScrollbar = true;//水平
listBox1.ScrollAlwaysVisible = true;//垂直
listBox1.SelectionMode = SelectionMode.MultiExtended;//實現(xiàn)在控件中選擇多項

點擊button1(打開文件)后:

//實例化瀏覽文件夾對話框
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
    //獲取選擇的文件夾的路徑
    textBox1.Text = fbd.SelectedPath;
    //使用獲取的文件夾路徑實例化DirectoryInfo類對象
    DirectoryInfo dinfo = new DirectoryInfo(textBox1.Text);
    //獲取指定文件夾下的所有子文件夾及文件
    FileSystemInfo[] finfo = dinfo.GetFileSystemInfos();
    //將獲取到的子文件夾及文件添加到ListBox控件中
    listBox1.Items.AddRange(finfo);
    label2.Text = "(" + listBox1.Items.Count + "項}";
}

選擇ListBox其中的項:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    label3.Text = "你選擇的是:";
    for(int i = 0 ; i < listBox1.SelectedItems.Count ; i++)
    {
        label3.Text += listBox1.SelectedItems[i]+"、";
    }
}

ListView控件:(主用于顯示帶圖標(biāo)的列表項)

實例(為ListView的Group添加項,另外可以設(shè)置添加、移除和清空項功能):

listView1.View = View.SmallIcon;//設(shè)置View屬性,設(shè)置樣式
//為listView1建立兩個組
listView1.Groups.Add(new ListViewGroup("名稱", HorizontalAlignment.Left));
listView1.Groups.Add(new ListViewGroup("類別", HorizontalAlignment.Left));
listView1.Items.Add("name1");
listView1.Items.Add("name2");
listView1.Items.Add("lei1");

對上面的項進(jìn)行分組(設(shè)置它們的Group屬性):

//添加到第一個分組的寫法
listView1.Items[0].Group = listView1.Groups[0];
//加入第二分組
listView1.Items[2].Group = listView1.Groups[1];

添加項:

listView1.Items.Add(textBox1.Text.Trim());

刪除項:

listView1.Items.RemoveAt(listView1.SelectedItems[0].Index);
listView1.SelectedItems.Clear();

清空項:

listView1.Items.Clear();

TreeView控件:(用于顯示節(jié)點層次結(jié)構(gòu))

treeView1.ContextMenuStrip = contextMenuStrip1;//設(shè)置樹控件的快捷菜單
TreeNode tn = treeView1.Nodes.Add("根節(jié)點");
TreeNode pn1 = new TreeNode("節(jié)點1");
//將節(jié)點1放到根節(jié)點下的節(jié)點中
tn.Nodes.Add(pn1);
TreeNode cn1 = new TreeNode("節(jié)點1下的節(jié)點");
pn1.Nodes.Add(cn1);
//快捷菜單下的全部展開跟全部折疊
treeView1.ExpandAll();
treeView1.CollapseAll();

treeView1也通常和p_w_picpathList控件用,一起顯示帶圖片的節(jié)點:

p_w_picpathList1.Images.Add(Image.FromFile("1.png"));
p_w_picpathList1.Images.Add(Image.FromFile("2.png"));
treeView1.ImageList = p_w_picpathList1;
p_w_picpathList1.ImageSize = new Size(16,16);
//設(shè)置treeView1控件節(jié)點的圖標(biāo)在p_w_picpathList1控件中的索引時0
treeView1.ImageIndex = 0;
//選擇某個節(jié)點后顯示的圖標(biāo)在p_w_picpathList1控件中的索引為1
treeView1.SelectedImageIndex = 1;

ImageList控件:(主用于存儲圖片資源,然后在控件中顯示出來,簡化圖片的管理)

p_w_picpathList1.ColorDepth = ColorDepth.Depth42Bit;//設(shè)置圖像的顏色深度

加載圖片:

p_w_picpathList1.Images.Clear();//清除圖像
string Path = "C:\\Users\\lucky\\Desktop\\1.jpg";
Image img = Image.FromFile(Path, true);
p_w_picpathList1.Images.Add(img);
p_w_picpathList1.ImageSize = new Size(215, 135);
//設(shè)置pictureBox1的圖像索引時p_w_picpathList1控件索引為0的圖片
pictureBox1.Image = p_w_picpathList1.Images[0];

清除圖片:

p_w_picpathList1.Images.RemoveAt(0);
pictureBox1.Image = null;

登陸常用到的KeyUp事件:

private void txtUserName_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyValue == 13)//判斷是否按下Enter鍵
        txtUserPwd.Focus();
}

字體滾動實例:

private void timer1_Tick(object sender, EventArgs e)
{
    //設(shè)置label1左邊緣與其容器的工作區(qū)左邊緣之間的距離
    label1.Left -= 2;
    //當(dāng)label1右邊緣與其容器的工作區(qū)左邊緣之間的距離小于0時
    if (label1.Right < 0)
    {
        //設(shè)置label1左邊緣與其容器的工作區(qū)左邊緣之間的距離為該窗體的寬度
        label1.Left = this.Width;
    }
}

開始滾動:

timer1.Enabled = true;

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:C#Window控件及窗體的基本使用-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article48/deoohp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、做網(wǎng)站、Google自適應(yīng)網(wǎng)站、手機網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化