精华内容
下载资源
问答
  • WPF Prism MVVM 弹出新窗体. 放入用户控件., 传入一些数据,并且可以返回一些数据. 对于一个WPF ...

    这里写图片描述

    WPF Prism MVVM 中 弹出新窗体. 放入用户控件., 传入一些数据,并且可以返回一些数据.

    对于一个WPF MVVM 的 萌新来说. 必然会遇到一个 弹出 新窗口 的问题.
    今天,就和大家分享一下,这个问题的解决方法.
    .

    一. 准备

    • .dll
    • .CS 文件 (StylePopupWindowAction.cs)
    • .xaml 文件(BorderlessWindow.xaml)

    项目的目录
    这里是 实例化一个窗口,然后 加载窗口的样式. ( StylePopupWindowAction.cs)

    using System;
    using System.Windows;
    using System.Windows.Input;
    using Prism.Interactivity;
    using Prism.Interactivity.InteractionRequest;
    
    namespace HXDJSsYSTEM.WindowAction
    {
        public class StylePopupWindowAction : PopupWindowAction
        {
           private Window _wrapperWindow;
            /// <summary>
            /// 通过重写PopupWindowAction中的GetWindow方法,设置Window的Style属性。
            /// 否则打开的只能是默认窗体,无法设置样式。
            /// </summary>
            /// <param name="notification"></param>
            /// <returns></returns>
            protected override Window GetWindow(INotification notification)
            {
                if (this.WindowContent != null)
                {
                    //初始化窗口
                    _wrapperWindow = new Window
                    {
                        //数据上下文
                        DataContext = notification,
                        Title = notification.Title,
                        //宽高自适应 内容
                        SizeToContent = SizeToContent.WidthAndHeight,
                      
                    };
    
                    _wrapperWindow.KeyDown += WrapperWindow_KeyDown;
                    ResourceDictionary langRd = null;
                    try
                    {
                        //读取资源文件(样式)
                        langRd = Application.LoadComponent(new Uri("/WindowAction/BorderlessWindow.xaml", UriKind.RelativeOrAbsolute)) as ResourceDictionary;
                    }
                    catch
                    {
                    }
                    //判断资源是否 读取成功.读取成功则不为null
                    if (langRd != null)
                    {
                        //判断是否已经有资源. 如果有 就 clear;
                        if (_wrapperWindow.Resources.MergedDictionaries.Count > 0)
                        {
                            _wrapperWindow.Resources.MergedDictionaries.Clear();
                        }
                        //将资源加入到window中
                        _wrapperWindow.Resources.MergedDictionaries.Add(langRd);
                    }
                    //将传入的 notification  放入 window
                    PrepareContentForWindow(notification, _wrapperWindow);
                }
                else
                {
                    //如果WindowContent 等于null  则 生成默认窗口
                    _wrapperWindow = this.CreateDefaultWindow(notification);
                }
    
                return _wrapperWindow;
            }
    
            /// <summary>
            /// 键盘按下 事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void WrapperWindow_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
            {
                //按下ESC 关闭窗口
                if (e.Key == Key.Escape)
                {
                  _wrapperWindow.Close();
                }
    
            }
        }
    }
    
    

    这里是上面代码 要加载的 样式 ( BorderlessWindow.xaml )

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <Style x:Name="BorderlessWindowStyle"
               TargetType="{x:Type Window}">
            <Setter Property="FontFamily"
                    Value="{DynamicResource DefaultFontFamily}" />
            <Setter Property="FontSize"
                    Value="{DynamicResource DefaultFontSize}" />
            <Setter Property="Foreground"
                    Value="{DynamicResource WindowText}" />
            <Setter Property="BorderBrush"
                    Value="{DynamicResource WindowBorder}" />       
            
            <Setter Property="ResizeMode"
                    Value="CanResizeWithGrip" />
            <Setter Property="UseLayoutRounding"
                    Value="True" />
            <Setter Property="TextOptions.TextFormattingMode"
                    Value="Display" />
    
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Window}">
                        <Border x:Name="WindowBorder"
                                Margin="{Binding Source={x:Static SystemParameters.WindowNonClientFrameThickness}}">
                            <Border.Background>
                                <SolidColorBrush x:Name="WindowBorderBackground"
                                                 Color="{DynamicResource WindowBackgroundColor}" />
                            </Border.Background>
                            <Border.Resources>
                                <Storyboard x:Key="BackgroundAnimation">
                                    <ColorAnimation Storyboard.TargetName="WindowBorderBackground"
                                                    Storyboard.TargetProperty="Color"
                                                    To="{DynamicResource WindowBackgroundColor}"
                                                    Duration="0:0:.6" />
                                </Storyboard>
                            </Border.Resources>
    
                            <Border BorderBrush="{TemplateBinding BorderBrush}"
                                    BorderThickness="1">
                                <AdornerDecorator>
                                    <Grid x:Name="LayoutRoot">
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="36" />
                                            <RowDefinition Height="Auto" />
                                            <RowDefinition Height="*" />
                                        </Grid.RowDefinitions>
    
                                        <!-- title bar -->
                                        <Grid>
                                            <!-- title -->
                                            <TextBlock Text="{TemplateBinding Title}"
                                                       Margin="8,0"
                                                       VerticalAlignment="Center"
                                                       Visibility="Visible" />
                                            <!-- window system buttons-->
                                            <StackPanel VerticalAlignment="Top"
                                                        HorizontalAlignment="Right"
                                                        WindowChrome.IsHitTestVisibleInChrome="True">
                                                <Button Command="{Binding Source={x:Static SystemCommands.CloseWindowCommand}}"
                                                        ToolTip="关闭">
                                                    <Button.Content>
                                                        <Grid Width="13"
                                                              Height="12"
                                                              RenderTransform="1,0,0,1,0,1">
                                                            <Path Data="M0,0 L8,7 M8,0 L0,7 Z"
                                                                  Width="8"
                                                                  Height="7"
                                                                  VerticalAlignment="Center"
                                                                  HorizontalAlignment="Center"
                                                                  Stroke="{Binding Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}}"
                                                                  StrokeThickness="1.5" />
                                                        </Grid>
                                                    </Button.Content>
                                                </Button>
                                            </StackPanel>
                                        </Grid>
    
                                        <Grid Grid.Row="1"
                                              Height="30">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="42" />
                                                <ColumnDefinition Width="*" />
                                            </Grid.ColumnDefinitions>
                                        </Grid>
                                        <Grid Grid.Row="2">
                                            <ContentPresenter />
                                        </Grid>
                                    </Grid>
                                </AdornerDecorator>
                            </Border>
                        </Border>
    
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsActive"
                                     Value="True">
                                <Setter Property="BorderBrush"
                                        Value="{DynamicResource WindowBorderActive}" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
    
            <Setter Property="WindowChrome.WindowChrome">
                <Setter.Value>
                    <WindowChrome CornerRadius="0"
                                  GlassFrameThickness="1"
                                  UseAeroCaptionButtons="False"
                                  NonClientFrameEdges="None" />
                </Setter.Value>
            </Setter>
        </Style>
        <Color x:Key="WindowBackgroundColor">#ffffff</Color>
    
        <SolidColorBrush x:Key="ButtonBackground"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="ButtonBackgroundHover"
                         Color="#dddddd" />
        <SolidColorBrush x:Key="ButtonBackgroundPressed"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="ButtonBorder"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="ButtonBorderHover"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="ButtonBorderPressed"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="ButtonText"
                         Color="#333333" />
        <SolidColorBrush x:Key="ButtonTextHover"
                         Color="#333333" />
        <SolidColorBrush x:Key="ButtonTextPressed"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="ButtonTextDisabled"
                         Color="#a1a1a1" />
    
        <SolidColorBrush x:Key="DataGridBackground"
                         Color="Transparent" />
        <SolidColorBrush x:Key="DataGridForeground"
                         Color="#333333" />
        <SolidColorBrush x:Key="DataGridCellBackground"
                         Color="Transparent" />
        <SolidColorBrush x:Key="DataGridCellBackgroundHover"
                         Color="#dddddd" />
        <SolidColorBrush x:Key="DataGridCellBackgroundSelected"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="DataGridCellForeground"
                         Color="#333333" />
        <SolidColorBrush x:Key="DataGridCellForegroundHover"
                         Color="#333333" />
        <SolidColorBrush x:Key="DataGridCellForegroundSelected"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="DataGridHeaderBackground"
                         Color="Transparent" />
        <SolidColorBrush x:Key="DataGridHeaderBackgroundHover"
                         Color="#dddddd" />
        <SolidColorBrush x:Key="DataGridHeaderBackgroundPressed"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="DataGridHeaderBackgroundSelected"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="DataGridHeaderForeground"
                         Color="#333333" />
        <SolidColorBrush x:Key="DataGridHeaderForegroundHover"
                         Color="#333333" />
        <SolidColorBrush x:Key="DataGridHeaderForegroundPressed"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="DataGridHeaderForegroundSelected"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="DataGridGridLines"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="DataGridDropSeparator"
                         Color="BlueViolet" />
    
        <SolidColorBrush x:Key="Hyperlink"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="HyperlinkHover"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="HyperlinkDisabled"
                         Color="#919191" />
    
        <SolidColorBrush x:Key="InputBackground"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="InputBackgroundHover"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="InputBorder"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="InputBorderHover"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="InputText"
                         Color="#333333" />
        <SolidColorBrush x:Key="InputTextHover"
                         Color="#333333" />
        <SolidColorBrush x:Key="InputTextDisabled"
                         Color="#919191" />
    
        <SolidColorBrush x:Key="ItemBackgroundHover"
                         Color="#dddddd" />
        <SolidColorBrush x:Key="ItemBackgroundSelected"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="ItemBorder"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="ItemText"
                         Color="#333333" />
        <SolidColorBrush x:Key="ItemTextSelected"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="ItemTextHover"
                         Color="#333333" />
        <SolidColorBrush x:Key="ItemTextDisabled"
                         Color="#919191" />
    
        <SolidColorBrush x:Key="LinkButtonText"
                         Color="#717171" />
        <SolidColorBrush x:Key="LinkButtonTextHover"
                         Color="#333333" />
        <SolidColorBrush x:Key="LinkButtonTextPressed"
                         Color="#919191" />
        <SolidColorBrush x:Key="LinkButtonTextDisabled"
                         Color="#919191" />
    
        <SolidColorBrush x:Key="MenuText"
                         Color="#66000000" />
        <SolidColorBrush x:Key="MenuTextHover"
                         Color="#bb000000" />
        <SolidColorBrush x:Key="MenuTextSelected"
                         Color="#333333" />
    
        <SolidColorBrush x:Key="ModernButtonBorder"
                         Color="#919191" />
        <SolidColorBrush x:Key="ModernButtonBorderHover"
                         Color="#333333" />
        <SolidColorBrush x:Key="ModernButtonBorderPressed"
                         Color="#333333" />
        <SolidColorBrush x:Key="ModernButtonBorderDisabled"
                         Color="#919191" />
        <SolidColorBrush x:Key="ModernButtonIconBackgroundPressed"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="ModernButtonIconForegroundPressed"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="ModernButtonText"
                         Color="#333333" />
        <SolidColorBrush x:Key="ModernButtonTextHover"
                         Color="#333333" />
        <SolidColorBrush x:Key="ModernButtonTextPressed"
                         Color="#333333" />
        <SolidColorBrush x:Key="ModernButtonTextDisabled"
                         Color="#a1a1a1" />
    
        <SolidColorBrush x:Key="PopupBackground"
                         Color="#ffffff" />
    
        <SolidColorBrush x:Key="ProgressBackground"
                         Color="#dddddd" />
    
        <SolidColorBrush x:Key="ScrollBarBackground"
                         Color="Transparent" />
        <SolidColorBrush x:Key="ScrollBarThumbBackground"
                         Color="Transparent" />
        <SolidColorBrush x:Key="ScrollBarThumbBackgroundDragging"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="ScrollBarThumbBackgroundHover"
                         Color="#dddddd" />
        <SolidColorBrush x:Key="ScrollBarThumbBorder"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="ScrollBarThumbForeground"
                         Color="Transparent" />
        <SolidColorBrush x:Key="ScrollBarThumbForegroundDragging"
                         Color="Transparent" />
        <SolidColorBrush x:Key="ScrollBarThumbForegroundHover"
                         Color="Transparent" />
    
        <SolidColorBrush x:Key="SeparatorBackground"
                         Color="#cccccc" />
    
        <SolidColorBrush x:Key="SliderSelectionBackground"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="SliderSelectionBorder"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="SliderThumbBackground"
                         Color="#ffffff" />
        <SolidColorBrush x:Key="SliderThumbBackgroundDragging"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="SliderThumbBackgroundHover"
                         Color="#dddddd" />
        <SolidColorBrush x:Key="SliderThumbBackgroundDisabled"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="SliderThumbBorder"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="SliderThumbBorderDragging"
                         Color="BlueViolet" />
        <SolidColorBrush x:Key="SliderThumbBorderHover"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="SliderThumbBorderDisabled"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="SliderTrackBackground"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="SliderTrackBorder"
                         Color="#cccccc" />
        <SolidColorBrush x:Key="SliderTick"
                         Color="#919191" />
        <SolidColorBrush x:Key="SliderTickDisabled"
                         Color="#cccccc" />
    
        <SolidColorBrush x:Key="SubMenuText"
                         Color="#99000000" />
        <SolidColorBrush x:Key="SubMenuTextHover"
                         Color="#66000000" />
        <SolidColorBrush x:Key="SubMenuTextSelected"
                         Color="#333333" />
    
        <SolidColorBrush x:Key="WindowBackground"
                         Color="{StaticResource WindowBackgroundColor}" />
        <SolidColorBrush x:Key="WindowBorder"
                         Color="BlueViolet"
                         Opacity=".5" />
        <SolidColorBrush x:Key="WindowBorderActive"
                         Color="BlueViolet" />
        <LinearGradientBrush x:Key="WindowHeaderGradient"
                             StartPoint="0, 0"
                             EndPoint="0, 1"
                             Opacity=".1">
            <GradientStop Offset="0"
                          Color="BlueViolet" />
            <GradientStop Offset=".3"
                          Color="BlueViolet" />
            <GradientStop Offset="1"
                          Color="Transparent" />
        </LinearGradientBrush>
        <SolidColorBrush x:Key="WindowText"
                         Color="#333333" />
        <SolidColorBrush x:Key="WindowTextReadOnly"
                         Color="#919191" />
    
        <Rectangle x:Key="WindowBackgroundContent"
                   x:Shared="false"
                   Height="96"
                   Fill="{StaticResource WindowHeaderGradient}"
                   VerticalAlignment="Top" />
    </ResourceDictionary>
    

    二. 我们该怎么用它.

    1.窗口的XAML
    这里我们需要用到Triggers
    这里写图片描述

    2.窗口的 ViewModel
    在这里我们需要引用命名空间 ,大家没有这个DLL的 可以在NuGet上搜索.安装就可以了.
    这里写图片描述

    3.这里是ViewModel的具体方法

    • 定义
    • 在构造参数中实例化
    • 传入Content和Title

    这里写图片描述

    4.要放入Window 中 的 用户控件 的ViewModel

    这里写图片描述

    5.用户控件的ViewModel 中的具体操作

    • 放入返回值
    • 关闭窗口

    这里写图片描述

    6.返回值的处理
    这里写图片描述

    注意:

    • 用户控件 在触发器那里指定的时候,要注意 防止出现死循环. 会报错…
    • 这只是其中一种解决方案… 可能不是最好的.

    这些就是 这个 弹出窗体的 具体操作了. 也比较简单. 看不懂的 多看两遍. 然后 动手操作一下.

    这里写图片描述

    转载于:https://www.cnblogs.com/xxxxue/p/11153616.html

    展开全文
  • 如何最简单C#,richTextBox,控件中放入图片 如何最简单C#,richTextBox,控件中放入图片 如何最简单C#,richTextBox,控件中放入图片 如何最简单C#,richTextBox,控件中放入图片 如何最...
  • 控件-Win Forms窗体控件

    千次阅读 2017-05-03 22:06:04
    项目开发,界面设计是一个很重要...桌面应用程序,C#.Net提供了两种形式的设计窗体:Windows应用程序下的Windows窗体和asp.net web应用程序下的web窗体。为了使用方便,这里分别将其简称为:Win Forms和Web Fo

    在项目开发中,界面设计是一个很重要的方面。好的界面应该使操作者容易掌握、赏心悦目,把操作看作是一种享受而不是负担。Visual C#.Net提供了丰富的控件,大大简化了界面设计过程。

    在桌面应用程序中,C#.Net提供了两种形式的设计窗体:Windows应用程序下的Windows窗体和asp.net web应用程序下的web窗体。为了使用方便,这里分别将其简称为:Win Forms和Web Forms。

    在windows应用程序中,只能使用Windows窗体控件。与窗体有关的设计主要包括创建控件、设置控件外观、编写事件方法和访问控件属性。对属性的修改有两种方法,即在设计窗体下直接修改和在代码中修改。

    1、控件中一些常用的属性和事件

    1.1常用基本属性

    1)Name:表示控件的名称。
    2)Enabled:表示控件是否可以对用户交互做出响应。
    3)Font:表示控件中显示文字的字体格式,包括字体名称、字号以及是否以斜体、加粗和下划线显式。
    4)BackColor:表示控件的背景色。
    5)ForeColor:表示控件的前景色。
    6)Image:表示控件上显示的图片。
    7)Location:这是一个复合属性,表示控件的左上角相对于其容器的左上角的坐标。
    8)Size:这是一个复合属性,表示控件的高度和宽度。
    9)Visible:表示是否显示控件。

    1.2常用事件

    1)MouseEnter事件:鼠标进入控件区域内时触发。
    2)MouseDown事件:在控件区域内按下鼠标键时触发。
    3)MouseLeave事件:鼠标离开控件区域时触发。
    除了上面提到的一些常用基本属性和事件以外,每个控件还有一些适合自己特点的属性和事件,现分别介绍如下。

    2 Label控件和LinkLabel控件

    Label控件通常用于提供控件或窗体的描述性文字,以便为用户提供帮助信息。

    2.1Label控件常用的基础属性

    Text:表示显式的文本内容。

    2.2操作示例

    下面这个示例主要反映如何在窗体中放置控件,以及设置控件属性。
    【例】标签示例
    1)创建一个Windows应用程序项目,在“属性”窗口中将窗体form1的“Text”属性改为“基础控件”,设置窗体“Size”属性值为“352,240”。
    2)从工具箱中拖出Label控件到窗体中。
    3)选中窗体中的Label控件,查看“属性”窗口,看到其“Name”属性为“Label1”。
    4)设置“Text”属性值为“基础控件展示”;设置“Font”属性值为“宋体,小二号字,斜体”;设置“Location”属性值为“88,24”,设置“ForeColor”属性值为“Blue”。
    5)按<F5>键编译并执行。

    LinkLabel控件与Label控件非常相似,不同的是它可以显示超级链接。当用户点击LinkLabel控件时,会触发LinkClicked事件,可以在LinkClicked事件中编写代码链接到指定网页。假设窗体上有一个LinkLabel控件,其“Text”属性为“请单击访问微软中国主页”;“LinkArea”属性为“5,4”,意思是将第5个字符后的4个字符即“微软中国”作为链接区域。编写LinkLabel1_LinkClicked事件代码为:
            private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
            {
                this.linkLabel1.Links[0].LinkData = "https://www.microsoft.com/zh-cn";
                System.Diagnostics.Process.Start(e.Link.LinkData.ToString());
            }
    执行该窗体,当用户单击“微软中国”时,就会显示相应的网页。

    3 Button控件

    一般使用Button控件完成某个处理过程。

    3.1 按钮控件中常用的基本属性

    Text属性:表示按钮控件上显示的文本内容。

    3.2 按钮控件中常用的基本事件

    Click事件:表示用鼠标单击控件时触发的操作。

    3.3 操作示例

    下面这个示例主要反映如何实现一些常用事件。
    【例】按钮示例
    1)从工具箱中拖动Button控件到窗体中。
    2)查看”属性“窗口,看到其”Name“属性为”button1“.
    3)设置”Text“属性值为”按钮测试“;设置”Location“属性值为”120,160“;设置”Size“属性值为”88,32“。
    4)实现Click事件。
    该事件的功能是当鼠标单击按钮时,会弹出一个消息框,同时修改标签属性。
    在属性窗口中,单击”事件“符号,在事件列表中找到”Click“事件,双击”Click“单元格,打开”代码编辑器“窗口,Visual C#.net会自动在From1.cs文件中加入以下代码:
            private void button1_Click(object sender, EventArgs e)
            {
                
            }
    其中,sender代表发出事件的对象,此处指button1;e代表封装的事件信息。在其中添加代码,其结果如下:
            private void button1_Click(object sender, EventArgs e)
            {
                //修改标签文本属性
                label1.Text = "请选择你的业余爱好";
                //弹出一个消息对话框
                MessageBox.Show(this, "标签文本内容已修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
    5)实现MouseEnter事件。
    该事件的功能是当鼠标进入按钮区域时,按钮颜色变为白色。
    在时间列表中双击”MouseEnter“单元格,Visual C#.net会自动在Form1.cs文件中加入以下代码:
            private void button1_MouseEnter(object sender, EventArgs e)
            {
    
            }
    在其中添加代码,如下:
            private void button1_MouseEnter(object sender, EventArgs e)
            {
                button1.BackColor = System.Drawing.Color.White;
            }
    6)实现MouseLeave事件。
    该事件的功能是当鼠标离开按钮区域时,按钮恢复原来的颜色。
    添加MouseLeave事件,修改代码如下:
            private void button1_MouseLeave(object sender, EventArgs e)
            {
                button1.BackColor = System.Drawing.SystemColors.Control;
            }
    7)按<F5>键编译并执行。

    4 TextBox控件

    TextBox控件允许用户在应用程序中输入或编辑文本,包括多行编辑和密码字符屏蔽等。

    4.1 文本框控件中常用的基本属性

    1)Text属性:表示文本框中的当前文本。
    2)MaxLenght属性:表示用户可以在文本框控件中最多键入的字符数。
    3)Multiline属性:表示是否可以包含多行内容。
    4)PasswordChar属性:用于屏蔽在单行文本框控件中输入的密码字符。也就是说,如果指定了PasswordChar,则输入的任何字符都显示为PasswordChar中指定的字符。注意:如果将Multiline属性设置为true,则PasswordChar不起作用。

    4.2 文本框控件中常用的基本事件

    TextChanged事件:表示文本框当前内容(Text属性值)更改时触发的操作。

    4.3 操作示例

    该示例的功能是当用户输入密码时,标签label1的文本反映出该用户输入的密码。
    【例】文本框示例
    1)从工具箱中以此拖入Label和TextBox控件到窗体中。

    2)设置属性如下表

    控件属性
    LabelNamelabelUser
    Text用户名
    TextBoxNametextBoxUser
    LabelNamelabelPwd
    Text密码
    TextBoxNametextBoxPwd
    PasswordChar*
    3)添加textBoxPwd_TextChanged事件代码。
    选中textBoxPwd控件,添加TextChanged事件,并修改代码如下:
            private void textBoxPwd_TextChanged(object sender, EventArgs e)
            {
                label1.Text = textBoxUser.Text + "输入的密码为" + textBoxPwd.Text;
            }
    4)按<F5>键编译并执行。

    5 CheckBox控件

    CheckBox控件可为用户提供一项选择,如“真/假”或“是/否”。该复选框控件可以显示一个图像或文本,或两者都显示。多个CheckBox控件构成一组选项时,可进行多重选择,相互之间不影响。

    5.1 复选框控件中常用的基础属性

    1)Text属性:表示与复选框控件关联的文本。
    2)Checked属性:表示复选框是否处于选中状态。

    5.2 复选框控件中常用的基本事件

    CheckedChanged事件:表示当Checked属性值更改时触发的操作。
    5.3 操作示例
    该示例的功能是当选中某个复选框时,该复选框的文字会变为绿色,单击按钮时会弹出消息反映用户的选择。3个CheckBox控件的CheckedChanged事件通过调用一个公用的方法checkBox_CheckedChanged来实现。
    【例】复选框示例
    1)在工程中添加一个新窗体form2。
    窗体中各控件属性如下:
    控件属性
    LabelNamelabel1
    Text你的业余爱好是:
    CheckBoxNamecheckBox1
    Text体育活动
    CheckedFalse
    CheckBoxNamecheckBox2
    Text逛商场
    CheckedFalse
    CheckBoxNamecheckBox3
    Text聊天
    CheckedFalse
    ButtonNamebutton1
    Text确定
    2)在Form2类中,直接添加方法CheckBox_CheckedChanged。该方法的功能是当选中某个复选框时,该复选框的文字会变为绿色。
            public void checkBox_CheckedChanged(object sender, System.EventArgs e)
            {
                //引用CheckBox对象
                CheckBox checkbox = (CheckBox)sender;
                if (checkbox.Checked)
                {
                    checkbox.ForeColor = Color.Green;
                }
                else
                {
                    checkbox.ForeColor = Color.Black;
                }
            }
    3)将3个CHeckBox控件的CheckedChanged触发事件均选择为checkBox_CheckedChanged。
    4)选中button1控件,添加Click事件,并修改代码如下:
            private void button1_Click(object sender, EventArgs e)
            {
                string str = "选择结果:";
                str += (this.checkBox1.Checked) ? (this.checkBox1.Text + "、") : "";
                str += (this.checkBox2.Checked) ? (this.checkBox2.Text + "、") : "";
                str += (this.checkBox3.Checked) ? (this.checkBox3.Text + "、") : "";
                //去除一个多余的、
                if (str[str.Length - 1] == '、')
                {
                    str = str.Substring(0, str.Length - 1);
                }
                MessageBox.Show(str);
            }
    该事件的功能为单击按钮时弹出消息对话框显示用户选择的结果。
    5)直接执行窗体Form2的方法。
    当执行项目时,C#会自动调用窗体Form1,此处示例不需要执行Form1,而希望执行窗体Form2,为了能够直接调用窗体Form2,必须在Form1类中找到Main方法,对其进行修改。
            static void Main()
            {
                Application.Run(new Form2());
            }
    修改后,运行项目时,将直接调用窗体Form2.
    6)按<F5>键编译并执行。

    6 CheckedListBox控件

    CheckedListBox控件提供一个选项列表,当选择项比较多时,或者在运行时需要动态地决定由哪些选型时,使用此控件比较方便。

    6.1 复选框列表控件中常用的基本属性

    1)Items属性:表示控件对象中所有选项的集合。
    2)MutiColumn属性:表示控件对象是否支持多列。
    3)ColumnWidth属性:表示控件对象支持多列时,列的宽度。
    4)CheckOnClick属性:表示当选定某项时是否应同时改变复选框状态。
    5)Sorted属性:表示控件对象中各项是否按字母排序。
    6)CheckedItems属性:表示控件对象中选中索引的集合。

    6.2 操作示例

    该示例的主要功能是能够对选项进行多次选择,单击【确定】按钮时,弹出用户选择的信息。
    【例】多项选择示例。
    1)在工程中添加一个新窗体Form3。

    窗体中各控件属性如下:
    控件属性
    LableNamelabel1
    Text请选择你的业余爱好(可多选)
    CheckedListBoxNamecheckedListBox1
    Items足球、篮球、排球、乒乓球、拳击、体操、射击、跑步、逛街、象棋、围棋、跳棋、军棋、五子棋、拱猪、双升、其它
    CheckOnClickTrue
    MutiColumnTrue
    ButtonNamebutton1
    Text确定
    2)选中button1控件,添加Click事件,并修改代码如下:
            private void button1_Click(object sender, EventArgs e)
            {
                string str = "选择结果:";
                //checkedListBox1.CheckedItems.Count是用户选择的个数
                //也可以用checkedListBox1.CheckedIndices.Count
                for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
                {
                    //checkedListBox1.CheckedItems[i]是用户选中项集合中的第i项
                    str += checkedListBox1.CheckedItems[i] + "、";
                }
                if (str[str.Length - 1] == '、')
                {
                    str = str.Substring(0, str.Length - 1);
                }
                MessageBox.Show(str);
            }
    3)直接执行窗体Form3。

    7 RadioButton控件

    RadioButton控件的方法与CheckButton控件基本类似,但在一组中选择一个单选按钮时,则自动清除其他按钮,即仅能选择其中的一个。单选按钮是以他们所在的容器划分组的,直接在form上放置的单选按钮将自动成为一组,这时form就是容器。如果在一个Form上创建多个单选按钮组,则需要使用GroupBox或者Panel控件作为容器。

    7.1 单选按钮控件中常用的基本属性

    1)Text属性:表示与控件对象相关联的文本。
    2)Checked属性:表示该控件对象是否被选中。

    7.2 单选按钮中常用的基本事件

    CheckedChanged事件:表示当Checked属性值更改时触发的操作。

    7.3 操作示例

    该实例的主要功能是在文本框中显示用户的选择。3个RadioButton控件的CheckedChanged事件调用了公用的方法RadioButton_CheckedChanged
    【例】用户选择示例
    1)在工程中添加一个新窗体Form4,界面与窗体中各控件属性如下:

    控件属性
    LabelNamelabel1
    Text请选择你要参与的项目
    RadioButtonNameradioButton1
    Text排球赛
    CheckedFalse
    RadioButtonNameradioButton2
    Text足球赛
    CheckedFalse
    RadioButtonNameradioButton3
    Text篮球赛
    CheckedFalse
    TextBoxNametextBox1
    2)在Form4类中,直接添加方法radioButton_CheckedChanged
            private void radioButton_CheckedChanged(object sender, System.EventArgs e)
            {
                //将object对象转型为RadioButton对象
                RadioButton check = (RadioButton)sender;
                if (check.Checked)
                {
                    textBox1.Text = check.Text;
                }
            }
    3)将3个RadioButton控件的CheckedChanged触发事件均选择为radioButton_CheckedChanged。
    4)直接执行窗体Form4.

    8 ListBox控件

    ListBox控件用来显示一组条目,以便让操作者从中选择一条或者多条,然后进行相应的处理,用法以及属性有些类似于CheckedListBox。

    8.1 列表框控件中常用的基本属性

    除了介绍过的Items属性、MultiColumn属性以外,列表框控件还有其他一些常用属性。
    1)SelectionMode属性:表示选择项时可以使用的方法,它有4种选择:
    *None:不能选择。
    *One:同一时刻只能选择一个条目。
    *MultsSimple:同一时刻可以选择一个或者多个条目。
    *MultExtended:同一时刻可以选择一个或者多个条目,并且可以使用组合键(如<Shift>和<Ctrl>)帮助选择。
    2)SelectedIndex属性:表示控件对象中当前选定条目的从零开始的索引。
    3)SelectedItems属性:获取一个集合,该集合包含控件对象中所有当前选定条目的从零开始的所有项。
    4)Selectedindices属性:获取一个集合,该集合包含控件对象所有当前选定条目的从零开始的所有索引。

    8.2 操作示例

    该示例的主要功能是在Form5_Load中自动初始化列表框控件,向列表框中添加非重复的条目,以及删除用户在列表框中的选择(可以多选)。
    【例】列表框示例
    1)在工程中添加一个新窗体Form5,设计界面以及窗体中各控件属性如下:

    控件属性
    LabelNamelabel1
    Text向列表中添加内容
    TextBoxNametextBox1
    ListBoxNamelistBox1
    SelectionModeMultiSimple
    ButtonNamebutton1
    Text添加非重复项
    ButtonNamebutton2
    Text多项删除

    2)修改Form5_Load事件,代码如下:
    private void Form5_Load(object sender, EventArgs e)
            {
                for (int i = 0; i<6; i++)
                {
                    //listbox1.Items.Add方法用户向列表框中添加条目
                    listBox1.Items.Add("第" + (i + 1).ToString() + "项");
                }
            }
    3)修改button1_Click事件,代码如下:
            private void button1_Click(object sender, EventArgs e)
            {
                //插入非重复条目
                bool ifExist = false;
                if (textBox1.Text != "")
                {
                    //for语句用来查找是否有重复条目,listBox1.Items.Count代表列表框中条目的个数
                    for (int i = 0; i < listBox1.Items.Count; i++)
                    {
                        if (listBox1.Items[i].ToString() == textBox1.Text)
                        {
                            ifExist = true;
                            //找到时中断退出
                            break;
                        }
                    }
                    if (!ifExist)
                    {
                        listBox1.Items.Add(textBox1.Text);
                    }
                }
            }
    4)修改button2_Click事件,代码如下:
            private void button2_Click(object sender, EventArgs e)
            {
                //多项删除
                //listBox1.SelectedIndices.Count用户选中条目的个数
                for (int i = listBox1.SelectedItems.Count - 1; i >= 0; i--)
                {
                    listBox1.Items.Remove(listBox1.SelectedItems[i]);
                }
            }
    5)直接执行窗体Form5。
    9 ComboBox控件
    ComboxBox控件由两部分组成,即一个文本框和一个列表框。文本框可以用来编辑或者显示当前选中的条目。单击文本框旁边带有向下箭头的按钮,则会弹出列表框,使用键盘或者鼠标可以在列表框中快速选择条目。
    9.1 组合框控件中常用的基本属性
    除了前面介绍过的属性外,组合框控件还有其他的常用属性。
    DropDownStyle属性:表示组合框的样式,它有3种选择:
    *Simple:同时显示文本框和列表框,文本框可以被编辑。
    *DropDown:只显示文本框,需要通过键盘或者鼠标打开列表框,文本框可以被编辑。
    *DropDownList:只显示文本框,需要通过键盘或者鼠标打开列表框,文本框不可以被编辑。
    9.2 组合框控件中常用事件
    SelectedIndexChanged事件:表示SelectedIndex属性更改后触发的动作。
    9.3 操作示例
    该示例的主要功能是在组合框中添加小组参加的项目,只有用户选择了小组和项目才能进行添加。
    【例】组合框用法示例
    1)在工程中添加一个新窗体Form6,设计和窗体中各控件的属性如下:


    控件属性
    LabelNamelabel1
    Text小组
    ComboBoxNamecomboBox1
    Items第一组、第二组、第三组
    DropDownStyleDropDown
    LabelNamelabel2
    Text参加项目
    ComboBoxNamecomboBox2
    Items工程一、工程二、工程三
    DropDownStyleDropDown
    ListBoxNamelistBox1
    2)添加comboBox1的SelectedIndexChanged事件
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                //在两个组合框都进行了选择后,才进行添加
                if (comboBox1.SelectedIndex > -1 && comboBox2.SelectedIndex > -1)
                {
                    listBox1.Items.Add(comboBox1.SelectedItem.ToString() + " " + comboBox2.SelectedItem.ToString());
                }
            }
    3)添加comboBox2的SelectedIndexChanged事件
            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (this.comboBox1.SelectedIndex > -1 && this.comboBox2.SelectedIndex > -1)
                {
                    this.listBox1.Items.Add(this.comboBox1.SelectedItem.ToString() + " " + this.comboBox2.SelectedItem.ToString());
                }
            }
    4)直接执行窗体Form6。

    10 ToolTip控件

    ToolTip控件的用途是当鼠标位于某个控件上并停留一段时间后,显示该控件功能的提示信息。

    10.1 控件中常用的基本属性

    1)Active属性:表示该控件当前是否处于激活状态。
    2)AutomaticDelay属性:设置经过多长时间显示提示信息,默认值为500ms。
    3)AutoPopDelay属性:设置鼠标指针停留多长时间后提示信息消失。

    10.2 操作示例

    在上例的Form6中拖放一个ToolTip控件,然后再Form6的构造函数中加入下列代码:
                toolTip1.SetToolTip(comboBox1, "选择参加的小组。");
                toolTip1.SetToolTip(comboBox2, "选择左边小组参加的项目。");
                toolTip1.SetToolTip(listBox1, "各小组参加的项目列表");
    运行时,分别将鼠标在上述控件中停留一段时间,观察显示的提示信息。实际上,如果控件有ToolTip属性,直接设置ToolTip属性也可以完成这种功能。

    11 PictureBox控件

    PictureBox控件是用于显示图像的Windows图片框控件。其常用的基本属性如下:
    1)Image:在PictureBox中显示的图像。
    2)SizeMode:图片在控件中的显示方式,有4中选择:
    *AutoSize:调整控件PictureBox大小,使其等于所包含的图像大小。
    *CenterImage:如果控件PictureBox比图像大,则图像将居中显示。如果图像比控件大,则图片将位于控件中心,而外边缘将被剪裁掉。
    *Normal:图像被置于控件的左上角。如果图像比控件大,则超出部分被剪裁掉。
    *StretchImage:控件中的图像被拉伸或收缩,以配合控件的大小。

    12 MainMenu控件

    MainMenu控件实际上是一个组件,该组件在运行时显示一个菜单。利用其菜单设计器可以迅速建立主菜单的结构。在菜单中,可以用符号“&”代表快捷键,如&F代表<Alt+F>;用符号“-”代表分隔符。
    【例】添加菜单示例
    1)在工程中添加一个新窗体Form7。
    2)将MainMenu组件从工具箱拖放到窗体上。
    3)在菜单设计器中,创建一个顶级菜项将其“Text”属性设置为“文件(&F)”。然后依次创建4个子菜单,将其“Text”属性分别设置为“新建(&New)”、“打开(&Open)”、“-”和“退出(&Exit)”。
    4)再创建一个顶级菜单项,并将其“Text”属性设置为“背景色”;两个子菜单项,其“Text”属性设置为“红色”和“白色”。
    5)再创建一个顶级菜单项,并将其“Text”属性设置为“测试执行文件所在目录”。
    6)双击对应菜单项,添加事件代码:
            private void menuItem2_Click(object sender, EventArgs e)
            {
                MessageBox.Show("你选择的是“新建”");
            }
    
            private void menuItem3_Click(object sender, EventArgs e)
            {
                MessageBox.Show("你选择的是“打开”");
            }
    
            private void menuItem5_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
    
            private void menuItem7_Click(object sender, EventArgs e)
            {
                this.BackColor = Color.Red;
            }
    
            private void menuItem8_Click(object sender, EventArgs e)
            {
                this.BackColor = Color.White;
            }
    
            private void menuItem9_Click(object sender, EventArgs e)
            {
                MessageBox.Show("exe文件所在目录为:\n\n" + Application.StartupPath + "\n");
            }
    7)直接执行窗体Form7。

    13 ProgressBar控件

    ProgressBar控件用来动态显示一个过程的进行程度,当某个操作需要较长的时间(几秒钟或者更长时间,例如复制操作)时,就需要使用ProgressBar向用户显示操作的进度情况。

    13.1 ProgressBar控件中常用的基本属性

    1)Minimum:表示进度条的最小值,默认值为0。
    2)Maximum:表示进度条的最大值,默认值为100。
    3)Value:表示进度条的当前值,默认值为0,它应该在minimum和Maximum之间取值。

    13.2 操作示例

    该示例的主要功能是如何操作进度条,progressBar2反映内循环,当变量值是10的倍数时加1;progressBar1反映的是外循环,其值每次加1。
    【例】进度条示例
    1)在工程中添加一个新窗体Form8。设计界面和窗体中各控件属性如下:

    控件属性
    ProgressBarNameprogressBar1
    Minimum0
    ProgressBarNameprogressBar2
    Minimum0
    LabelNamelabel1
    Text外循环次数
    LabelNamelabel2
    Text内循环次数
    ButtonNamebutton1
    Text开始计算
    2)添加【开始计算】按钮的Click响应事件:
            private void button1_Click(object sender, EventArgs e)
            {
                button1.Enabled = false;
                //Int32.Parse将字符型转换为整型
                int outLoop = Int32.Parse(textBox1.Text);
                int InnerLoop = Int32.Parse(textBox2.Text);
                progressBar1.Maximum = outLoop;
                progressBar2.Maximum = InnerLoop;
                for (int i = 1; i <= outLoop; i++)
                {
                    for (int j = 1; j <= InnerLoop; j++)
                    {
                        //j是10的整数倍时,progressBar2的值递增
                        if (j % 10 == 0)
                        {
                            progressBar2.Value = j;
                        }
                    }
                    progressBar1.Value = i;
                }
                button1.Enabled = true;
            }
    3)直接执行窗体Form8。

    14 TabControl控件

    TabControl控件可以创建带有多个标签页的窗口,每个标签页都是一个容纳其他控件(例如TextBox或Button)的容器。当窗口功能复杂、控件很多时,就可以使用TabControl把它们按功能进行分类。

    14.1 TabControl控件中常用的基本属性

    1)Multiline属性:表示是否可以显示一行以上的选项卡。即当其包含很多标签页时,标签页是否可以换行,呈多行显示。
    2)ImageList属性:TabControl控件对象的标签上可以使用图标,该属性用来存放所需要的图标,然后该ImageList属性再调用此ImageList控件对象。
    3)TabPages属性:包含了TabControl控件对象中的所用标签页面,每个标签页面都是一个容器,用来存放其他控件对象。

    14.2 操作示例

    该示例主要演示如何添加一个选项卡。
    【例】选项卡示例
    1)在工程中添加一个新窗体Form9。
    2)向窗体上拖放一个Tabcontrol控件,调整其大小。
    3)向窗体上拖放一个ImageList控件,添加2个图标。
    4)设置TabControl的ImageList属性为ImageList1。
    5)设置TabControl的TabPages属性,添加2个标签页,再分别在2个标签页上放置相应的空间,页面如下:

    6)直接执行窗体Form9
    15 ListView控件
    ListView控件用列表的形式显示一组数据,每条数据都是一个ListItem类型的对象,通常使用ListView来显示对数据库的查询结果。Windows系统中的文件浏览器就是一个ListView控件。
    15.1 ListView控件中常用的剧本属性
    1)View属性:表示数据的显示模式,有4中选择:
    *Large Icons(大图标):每条数据都用一个带有文本的大图标表示。
    *Small Icons(小图标):每条数据都用一个带有文本的小图标表示。
    *List(列表):提供ListItems对象视图。
    *Details(详细列表):每条数据由多个字段组成,每个字段各占一列。
    2)MultiSelect属性:表示是否允许多行选择。
    15.2 操作示例
    该示例主要说明如何建立列表视图。
    【例】列表视图示例
    1)在工程中添加一个新窗体From10,设计界面如下:

    控件属性
    ComboBoxNamecomboBox1
    DropDownStyleDropDownList
    Items大图标、小图标、列表、详细列表
    ListViewNamelistView1
    LargeImageListimageList2
    SmallImageListImageList1
    Columns学号、姓名、成绩
    ViewDetails
    LabelNamelabel1
    Text学号
    LabelNamelabel2
    Text姓名
    LabelNamelabel3
    Text成绩
    LabelNamelabel4
    Text视图模式
    ButtonNamebutton1
    Text添加
    ButtonNameButton2
    Text删除
    5)实现【添加】按钮的Click响应事件:
            private void button1_Click(object sender, EventArgs e)
            {
                int itemNumber = listView1.Items.Count;
                string[] subItem = { textBox1.Text, textBox2.Text, textBox3.Text };
                //listView1.Items.Insert方法用来在列表视图中添加ListView对象
                listView1.Items.Insert(itemNumber, new ListViewItem(subItem));
                listView1.Items[itemNumber].ImageIndex = 0;
            }
    6)实现【删除】按钮的Click响应时间:
            private void button2_Click(object sender, EventArgs e)
            {
                for (int i = listView1.SelectedItems.Count - 1; i >= 0; i--)
                {
                    ListViewItem item = listView1.SelectedItems[i];
                    //ListView1.Items.Remove用来去除列表视图中的ListViewItem对象
                    listView1.Items.Remove(item);
                }
            }
    7)添加comboBox1的SelectIndexChanged事件,该事件用于选择显示方式:
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string str = comboBox1.SelectedItem.ToString();
                switch (str)
                {
                    case "大图标":
                        listView1.View = View.LargeIcon;
                        break;
                    case "小图标":
                        listView1.View = View.SmallIcon;
                        break;
                    case "列表":
                        listView1.View = View.List;
                        break;
                    default:
                        listView1.View = View.Details;
                        break;
                }
            }
    8)直接执行窗体Form10。



    展开全文
  • 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都压缩包内。...
  • aspx.cs文件无法引用的aspx文件中控件的解决方法 最近使用VS2019编写asp.net项目时,遇到的一个bug,记录一下解决方法。 问题描述 我.aspx文件中创建了一个TextBox控件控件id=“TextBox2”,.aspx.cs文件...

    在aspx.cs文件无法引用的aspx文件中的控件的解决方法

    最近使用VS2019编写asp.net项目时,遇到的一个bug,记录一下解决方法。

    • 问题描述
      我在.aspx文件中创建了一个TextBox控件,控件id=“TextBox2”,在.aspx.cs文件中想要调用这个控件,但一直报错,提示当前上下文不存在该字段名。如下图:
      在这里插入图片描述
    • 解决方法

    百度了一番,大概的解决方法有:
    (1) 确认自己在 .aspx创建了该控件;
    (2)创建的是一个服务端的标准控件,即控件的声明格式类似<asp:TextBox ID=“TextBox2” runat=“server” OnTextChanged=“TextBox2_TextChanged”></asp:TextBox>。

    根据上面两种方式进行改进后,问题还是没法解决,于是只好重新创建了一个web窗体文件(后缀名为aspx),重新创建了一个TextBox控件并尝试在.aspx.cs文件中调用它,这次居然没有报错。
    仔细对比了两个文件里面的代码,终于找到了问题的根源。原来是自己把文件的第一条声明语句做了一些修改,
    把<%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“counter2.aspx.cs” Inherits=“WebApplication2.counter2” %>改为
    <%@ Page Language=“C#” AutoEventWireup=“true” CodeFile=“counter2.aspx.cs” Inherits=“WebApplication2.counter2” %>

    • CodeBehind是 一个 Visual Studio .NET 属性,Visual Studio .NET 就是借用这个属性来很好地跟踪管理项目中的 Web 窗体和与之相对的代码隐藏文件,当我们在设计环境中往 Web 窗体上放入一个服务器控件时,Visual Studio .NET 将自动找到与该 Web 窗体相对应的代码隐藏文件,并自动插入相关的代码。这样我们想要调用该服务器控件时,就可以不用事先在 .aspx.cs文件进行声明后才能使用,而是可以直接通过该控件的id进行调用。

    关于CodeBehind、CodeFile、Inherits这三个属性各自的作用可以参考:https://blog.csdn.net/q290994/article/details/79632431

    展开全文
  • 这样,大家不需要设定每个TableLayout控件中的子控件的任何属性,TableFormat类帮自动布局界面上的控件,并且随着窗体的变化,控件是自动变化的,当然里面有些参数,是可以设定父级控件(GroupPanle/Panle的高度=里面行高...
  • Windows窗体控件

    万次阅读 2016-05-11 11:20:39
    学习下Window的窗体控件,UI,我的IDE是VS2012,通过学习这些基本控件,如果以后要用到别的控件,就能够较快上手。 Windows窗体窗体是应用程序的基本单元,是非常重要的。它实质上是一块白板,通过添加控件可以...

    学习下Window的窗体与控件,UI,我的IDE是VS2012,通过学习这些基本控件,如果以后要用到别的控件,就能够较快上手。

    Windows窗体

    窗体是应用程序的基本单元,是非常重要的。它实质上是一块白板,通过添加控件可以创建用户界面,并通过代码来操作数据,填充这个白板。

    创建窗体

    • 启动VS2012
    • 文件->新建->项目
    • 选择Windows窗体应用程序,名称,路径自己填
      这里写图片描述
    • 接下来就可以看到窗体已经建好了
      上面的方法是在新建一个程序时加入的窗体,有的程序需要的不止一个窗体,如果需要多个窗体,操作是:选中项目->右键->添加->添加窗体
      这里写图片描述
      然后自己选择窗体的名称就行。

    更改窗体属性

    选中要修改的窗体,打开属性窗口,找到对应的项目,修改就可以了
    这里写图片描述

    Windows窗体控件

    常用的控件,包括普通控件,对话框,菜单,工具栏,组件等。微软官方文档

    控件的基本操作

    在设计和修改时,要添加、对齐和定位控件。每种控件都有自己的属性集、方法和时间,以使控件适用于特定用途。

    添加或者删除控件

    用户界面设计阶段

    视图->工具箱,打开工具箱,选择适当的选项卡,找到需要的控件
    - 将所需要的控件拖动到窗体的空白处
    - 双击所需控件添加事件
    删除一个控件:选中该控件然后按Delete键

    运行时添加删除控件控件

    应用程序在开发过程中的常见任务在窗体上的任何容器控件上添加控件或者移除控件(如Panel或者GroupBox控件,甚至窗体自身)。在运行时,这些控件维护了一个Controls集合,该集合记录在其中放置了哪些控件。
    添加主要步骤:
    - 创建要添加的控件实例;
    - 设置控件的属性;
    - 将控件添加到父控件的Controls集合。

    private void button1_Click(object sender, EventArgs e)
    {
        public Button bt = new Button();
        bt.Text = "新建的Button";
        this.Controls.Add(bt);
    }

    删除主要步骤
    - 从事件中移除事件处理程序
    - 使用Remove方法,从父控件的Controls集合中删除需要删除的控件
    - 调用Dispose方法,释放该控件占用的资源

    private void button2_Click(object sender, EventArgs e)
    {
       if (this.Controls.Contains(bt)) {
           this.Click -= new System.EventHandler(this.button1_Click);
           this.Controls.Remove(bt);
           bt.Dispose();
       }
    }

    定位控件

    使用窗体设计器拖动或者指定Location属性值来进行定位
    - 单击要定位的控件
    - 在“属性”窗口中,输入Location属性值(用逗号分隔),以便在窗口内定位该控件

    命令控件

    Button

    用户单击时,调用Click事件处理程序。可以将代码放入Click事件处理程序来执行所选的操作,按钮上的文本包含在Text属性中。

    LinkLabel

    通过这个控件可以向窗体中添加Web样式的链接。一切可以使用Label的地方都可以使用LinkLabel,还可以将文本的一部分设置为指向某个文件,文件夹或者网页的链接。

    NotifyIcon组件

    NotifyIcon组件用于显示在后台运行的进程的图标,这些进程大部分时间不显示用户界面。通过单击任务栏状态通知区域的图标来访问杀毒软件或者音乐播放器就是具体的例子
    其关键属性有两个,是Icon和Visible。Icon属性出现在状态区域的图标,为使图标出现,Visible必须设置为true

    设置选项控件

    复选框、单选按钮、等

    CheckBox控件和RadioButton控件

    CheckBox指示某个特定条件是处于打开状态还是处于关闭状态。他常用为用户提供是/否或者真/假选项,可以成组使用复选框控件以显示多重选项用户可以从中选择一项或者多项。
    复选框可以使用简单数据绑定连接到数据库中的元素。多个复选框可以使用GroupBox进行分组
    RadioButton为用户提供有两个或者多个互斥选项组成的选项集。当用户选择某单选按钮时,同一组中的其他单选按钮不能同时选定

    TrackBar控件

    该控件用于大量信息中进行浏览,或者用于以可视的形式调整数字设置。其有两部分:滚动块和刻度线。
    关键属性有:
    - Vakue
    - TickFrequency
    - Minimun控件
    - Maximum控件

    列表选择控件

    Windows窗体列表选择控件主要包括ListBox控件,CheckedBox控件和ComboBox控件。

    ComboBox控件和ListBox控件

    用于在下拉组合框中现实数据,默认情况下,其分两个部分,顶部是允许用户输入列表项的文本框;第二部分是一个列表框,现实一个项列表,用户可以从中选择一项。
    用户通过控件的SelectedIndex属性返回一个整数值,该值与选择的列表项相对应。通过改变SelectedIndex可以改变选择项,未选择任何项,SelectedIndex将返回-1。SelectedItem和SelectedIndex类似,但是它返回选中项,一般情况为一个字符串。
    增加删除项,使用Add,Insert,Clear,Remove等方法。
    ListBox控件和Combo控件类似

    CheckedListBox控件

    在ListBox控件上增加了列表项旁边显示复选标记

    TreeView控件

    该控件可以为用户显示节点层次结构,就像Windows资源管理器一样,还可以展开和折叠。

    编辑文本控件

    • TextBox控件
    • RichTextBox控件
    • MaskedTextBox控件

    显示信息控件

    • Label
    • StatusStrip
    • ProgressBar

    日期选择控件

    • DateTimePicker
    • MonthCalendar

    图像控件

    • PictureBox
    • ImageList

    容器组件

    • Panel
    • GroupBox 可以将多个控件放在一个分组里面
    • TabControl 显示多个选项卡
    • SplitContainer 由多个可以移动的拆分条分隔的两个面板
    • TableLayoutPanel控件

    对话框控件

    • ColorDialog控件
    • FontDialog
    • OpenFileDialog
    • SaveFileDialog
    • FolderBrowserDialog
    private void ColorDialog_Click(object sender, EventArgs e)
    {
        ColorDialog cd = new ColorDialog();
        cd.ShowDialog();
        ColorDialog.BackColor = cd.Color;
    }
    
    private void FontDialog_Click(object sender, EventArgs e)
    {
        FontDialog fd = new FontDialog();
        fd.ShowDialog();
        FontDialog.Font = fd.Font;
    }
    
    private void OpenFileDialog_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.ShowDialog();
    }
    
    private void SaveFileDialog_Click(object sender, EventArgs e)
    {
        SaveFileDialog sfd = new SaveFileDialog();
        sfd.ShowDialog();
    }
    
    private void FolderBroswerDialogbtn_Click_1(object sender, EventArgs e)
    {
        FolderBrowserDialog fbd = new FolderBrowserDialog();
        fbd.ShowDialog();
        FolderBroswerDialogbtn.Text = fbd.SelectedPath;
    }

    菜单和工具栏控件

    这些控件在设计界面中都很直观,通过简单的观察就可以很好地使用

    使用MenuStrip,可以
    - 创建支持高级用户界面和布局的功能的易自定义的常用菜单,例如文本和图像排序和对其,拖放操作和访问菜单命令等
    - 支持操作系统的典型外观和行为
    - 对多有容器和包含的项进行事件的一致性处理,处理方式与其他控件的事件相同

    ContextMenuStrip

    ToolStrip

    ToolStripContainer

    展开全文
  • delphi 开发的应用,每一个窗体都有一个对应的窗体文件(.dfm),用来记录该窗体的属性以及窗体上所有控件的属性,以便窗体关闭后能准确地重新生成窗体。几乎所有的DELPHI参考书都没有提到过该文件的具体情况,...
  • (1)Name属性:用来获取或设置窗体的名称,应用程序可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized (窗体以最小化...
  • 这是一个将excel嵌入到form窗体中。很实用
  • 关于QT界面添加自制控件的方法

    千次阅读 2018-09-18 17:36:56
    于是我们想到从网上找一些别人已经做好的仪表盘控件,来添加到我们的界面。 但是遇到了一些问题。 如代码所示 #ifndef CUSTOMDIALPLOT_H #define CUSTOMDIALPLOT_H #include &lt;QWidget&gt; class ...
  • 关于如何MFC的窗口插入VLC ActiveX控件,请看这位大神的一篇文章:...如上面链接博文所述,MFC的对话框插入一个VLC控件后,然后定义一个控件变量,假设变量名为m_VLC,这样...
  • asp.net控件页面交互I saw a recent question regarding .NET - Render User Control Logo on Postback and decided to write an article to address the issue stated in that question. To add further, I would ...
  • 关于Qt QLineEdit 如何得到拖其中的文件路径
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    .NET这些组件或动态联接库不必注册表注册,每个程序都可以使用自带的组件或动态联接库,只要把这些组件或动态联接库到运行程序所在文件夹的子文件夹bin,运行程序就自动使用bin文件夹的组件或动态...
  • Winform应用程序 控件 窗体 事件

    千次阅读 2019-08-14 19:03:33
    常用窗体属性: 快捷键:【F4】 调出 ClientSize 客户操作【界面大小】,【不计算】窗体边框和边界距离 Size 整个【窗体大小】 Name 窗体【对象命名】 Text 窗体【文本内容】 WordWrap 指示文本框是否【换行...
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    你做的页面哪些流览器测试过?这些浏览器的内核分别是什么? 21 每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗? 21 Quirks模式是什么?它和Standards模式有什么区别 21 div+css的布局较...
  • 控件中一些常用的属性和事件

    千次阅读 2019-09-01 11:22:56
    3)Font:表示控件中显示文字的字体格式,包括字体名称、字号以及是否以斜体、加粗和下划线显式。 4)BackColor:表示控件的背景色。 5)ForeColor:表示控件的前景色。 6)Image:表示控件上显示的图片。 7)...
  • c#窗体控件用法大全

    万次阅读 多人点赞 2011-06-05 00:31:00
    C#控件大全 收藏C#控件及常用设计整理1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,应用程序可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取或设置窗体的窗口状态。 ...
  • WPF学习

    万次阅读 多人点赞 2019-03-05 22:00:17
    怎么去掉WPF窗体靠上多出黑色的长条?vs界面的菜单栏点击调试-选项,把启用XAML的UI调试工具勾选去掉即可。(我自己觉得偶尔会用用这个) 1 认识WPF 1.1 新建WPF项目 生成 Properties:...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  一个Java+ajax写...
  • WPF开发教程

    万次阅读 多人点赞 2019-07-02 23:13:20
    ------WPF 开发教程   目录 ...WPF基础入门.......目标就是提供堆栈处于较低位置的可扩展性点,这将允许外部开发人员可以需要时创建自己的框架。 System.Windows.FrameworkElement ...
  • 上一篇文章使用鼠标事件来捕获界面鼠标输入信息,但是当将鼠标到表格窗体上进行点击时并没有任何反应。那是因为表格窗体是一个独立的窗体对象,每个窗体对象都有自己的鼠标事件,因此如果要表格窗体上操作鼠标...
  • Java AWT/Swing实现不规则窗体控件

    千次阅读 多人点赞 2019-05-09 05:27:28
    不规则控件将实现一个三角形按钮安装上述三角形窗体中。 Java AWT实现不规则控件 先看AWT的Frame如何来做。先看Java代码: import java . awt . * ; import java . awt . event . * ; public ...
  • 第5章 Web窗体的基本控件

    千次阅读 2013-02-08 15:27:55
    第5章 Web窗体的基本控件 与ASP不同的是,ASP.NET提供了大量的控件,这些控件能够轻松的实现一个交互复杂的Web应用功能。传统的ASP开发,让开发人员最为烦恼的是代码的重用性太低,以及事件代码和页面代码不能...
  • 前言 wpf使用winform控件或者...二、要使用WinForm控件的WPF窗体的XAML文件中添加如下内容: 代码如下(示例) xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" xmlns:wfi =".
  • winform控件 一、概述 二、常用属性 eg1:Do you love me? eg2:动态的显示当前时间: eg3:跑马灯 eg4:简单记事本NoteBook eg5:单选和多选 eg6:MDI窗体 eg7、PictureBox上下选择图片 eg8、Directory创建、...
  • http://www.cnblogs.com/bitzhuwei/archive/2012/05/24/SmileWei_EmbeddedApp.html ...这是最近做的一个项目提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自
  • 过去,Web程序员经常他们的Web程序使用ActiveX控件来实现一些胖客户端才具有的功能。不过现在开发者可 以很容易的通过Microsoft.NET Framework来简洁和安全的建立对象,并且方便的...窗体控件并且IE使用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,648
精华内容 4,259
关键字:

在窗体文件中放入控件