精华内容
下载资源
问答
  • Java根据图片建立不规则窗体详解

    千次阅读 2014-09-18 15:26:07
    答案是肯定,我们可以让JAVA程序根据图片来生成自定义的不规则窗体。比如下图这种外观:   图中这个人物(蕾米莉亚)便是定义好的不规则窗体,怎么样?很漂亮吧!那么让我们开始学习吧。  首先要说明一下...

    JAVA程序的外表总是一板一眼的,看多了难免审美疲劳,能不能使我们的JAVA程序外观变得更美观更独特呢?答案是肯定的,我们可以让JAVA程序根据图片来生成自定义的不规则窗体。比如下图的这种外观:



     

    图中的这个人物(蕾米莉亚)便是定义好的不规则窗体,怎么样?很漂亮吧!那么让我们开始学习吧。

        首先要说明一下,本方法是基于com.sun.awt.AWTUtilities这个类实现的,而这个类只能在jdk-6u10版本以后的版本才能体现出来的,在本文中讨论的所有 API 在新 com.sun.awt.AWTUtilities 类中出现,该类不是官方支持的部分 API。它在 Java SE 7 中的位置最有可能发生改变,签名方法可能在现在和最终的 Consumer JRE 发行之间发生轻微变化。 

    所以当你的JDK版本不匹配的时候需要你将JDK插件更新。 
    地址: http://java.sun.com/javase/downloads/index.jsp
    好了,准备工作妥当,下面就让我们通过代码来学习根据图片制作不规则窗体的方法。
    =================================================================
    IrregularFormSample.java
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.MediaTracker;
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.awt.Shape;
    import java.awt.Toolkit;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionAdapter;
    import java.awt.geom.Area;
    import java.awt.image.PixelGrabber;
    import java.io.IOException;
    import java.util.ArrayList;
    import javax.swing.JFrame;
    import com.sun.awt.AWTUtilities;
    
    /**
    * 不规则窗体示例
    * @author Hexen
    */
    public class IrregularFormSample extends JFrame {
    
      private static final long serialVersionUID = 1L;
      private Point origin; //用于移动窗体
      private Image img; //用来设定窗体不规则样式的图片
    
      public IrregularFormSample() {
        super();
        
        /* 首先初始化一张图片,我们可以选择一张有透明部分的不规则图片
         * (当然我们要选择支持Alpha(透明)层的图片格式,如PNG),这张
         * 图片将被用来生成与其形状相同的不规则窗体
        */
        MediaTracker mt=new MediaTracker(this);
        img=Toolkit.getDefaultToolkit().createImage("remi.png");
        mt.addImage(img, 0);
        try {
          mt.waitForAll();
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
        
        try {
          initialize();//窗体初始化
        } catch (IOException e) {
          e.printStackTrace();
        }    
      }
    
      
      /**
        * 窗体初始化
        * @throws IOException
        */
      private void initialize() throws IOException {
        //设定窗体大小和图片一样大
        this.setSize(img.getWidth(null), img.getHeight(null));
        //设定禁用窗体装饰,这样就取消了默认的窗体结构
        this.setUndecorated(true);
        //初始化用于移动窗体的原点
        this.origin=new Point();
        
        //调用AWTUtilities的setWindowShape方法设定本窗体为制定的Shape形状
        AWTUtilities.setWindowShape(this,getImageShape(img));        
        //设定窗体可见度
        AWTUtilities.setWindowOpacity(this, 0.8f);
        
        this.setLocationRelativeTo(null);
        
        //由于取消了默认的窗体结构,所以我们要手动设置一下移动窗体的方法
        addMouseListener( 
            new MouseAdapter(){
              public void mousePressed(MouseEvent e){
                origin.x = e.getX();
                origin.y = e.getY();
              }
              //窗体上单击鼠标右键关闭程序
              public void mouseClicked(MouseEvent e) {
                if(e.getButton()==MouseEvent.BUTTON3)
                  System.exit(0);
              }
              public void mouseReleased(MouseEvent e) {
                super.mouseReleased(e);
              }
              @Override
              public void mouseEntered(MouseEvent e) {
                repaint();              
              }            
            }
        );
    
        addMouseMotionListener(
            new MouseMotionAdapter(){
              public void mouseDragged(MouseEvent e){
                Point p =    getLocation();
                setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y );
              }          
            }
        );    
      }
    
      
      /**
        * 将Image图像转换为Shape图形
        * @param img
        * @param isFiltrate
        * @return Image图像的Shape图形表示
        * @author Hexen
        */
      public Shape getImageShape(Image img) {
        ArrayList<Integer> x=new ArrayList<Integer>();
        ArrayList<Integer> y=new ArrayList<Integer>();    
        int width=img.getWidth(null);//图像宽度
        int height=img.getHeight(null);//图像高度
    
        //筛选像素
        //首先获取图像所有的像素信息
        PixelGrabber pgr = new PixelGrabber(img, 0, 0, -1, -1, true);
        try {
          pgr.grabPixels();
        } catch (InterruptedException ex) {
          ex.getStackTrace();
        }
        int pixels[] = (int[]) pgr.getPixels();
        
        //循环像素
        for (int i = 0; i < pixels.length; i++) {
          //筛选,将不透明的像素的坐标加入到坐标ArrayList x和y中      
          int alpha = getAlpha(pixels[i]);
          if (alpha == 0){
            continue;        
          }else{
            x.add(i%width>0 ? i%width-1:0);
            y.add(i%width==0 ? (i==0 ? 0:i/width-1):i/width);
          }      
        }
        
        //建立图像矩阵并初始化(0为透明,1为不透明)
        int[][] matrix=new int[height][width];    
        for(int i=0;i<height;i++){
          for(int j=0;j<width;j++){
            matrix[i][j]=0;
          }
        }
        
        //导入坐标ArrayList中的不透明坐标信息
        for(int c=0;c<x.size();c++){
          matrix[y.get(c)][x.get(c)]=1;
        }
        
        /* 由于Area类所表示区域可以进行合并,我们逐一水平"扫描"图像矩阵的每一行,
         * 将不透明的像素生成为Rectangle,再将每一行的Rectangle通过Area类的rec
         * 对象进行合并,最后形成一个完整的Shape图形
         */
        Area rec=new Area();
        int temp=0;
        
        for(int i=0;i<height;i++){
          for(int j=0;j<width;j++){
            if(matrix[i][j]==1){
              if(temp==0)
                temp=j;  
              else if(j==width){
                if(temp==0){
                  Rectangle rectemp=new Rectangle(j,i,1,1);
                  rec.add(new Area(rectemp));
                }else{
                  Rectangle rectemp=new Rectangle(temp,i,j-temp,1);
                  rec.add(new Area(rectemp));
                  temp=0;
                }
              }
            }else{
              if(temp!=0){
                Rectangle rectemp=new Rectangle(temp,i,j-temp,1);
                rec.add(new Area(rectemp));
                temp=0;
              }
            }
          }
          temp=0;
        }
        return rec;
      }
    
      
      /**
        * 获取像素的Alpha值
        * @param pixel
        * @return 像素的Alpha值
        */
      private int getAlpha(int pixel) {
        return (pixel >> 24) & 0xff;
      }
      
      
      /* 我们可以选择在窗体上绘制图片,是窗体完全呈现出图片的样式,
        * 当然我们也可以根据需要不绘制它,而采取其他操作
        */
      @Override
      public void paint(Graphics g) {
        super.paint(g);
        g.drawImage(img, 0, 0, null);
      }
      
      public static void main(String[] args) {
            IrregularFormSample sample = new IrregularFormSample();
            sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            sample.setVisible(true);
      }  
    }
    
    

    使用这种方法,我们可以自由的定义窗体外观,使我们的JAVA程序更加美观。现在就去尝试一下吧!

    本文出自 “和谐的HeXen” 博客

    • eb4fee6f-4249-3565-8c67-5e650e5703da-thumb.jpg
    • 大小: 51.4 KB
    展开全文
  • 一开始建立的窗体工程都是带很多窗口,而且自己拉到窗体的控件,一调试就看到了,是因为新建立工程项目时勾选了太多其他的了,这里记录分享一下建立一个单纯的窗体程序项目步骤给有需要的人也可以学习。...

     

            一开始建立的窗体工程都是带很多窗口,而且自己拉到窗体的控件,一调试就看不到了,是因为新建立工程项目时勾选了太多其他的了,这里记录分享一下建立一个单纯的窗体程序项目步骤给有需要的人也可以学习。

     

    第一步:

      

     

    第二步:

      

     

      

     

      

     

      高级功能这里取消所有选择,这个很重要

      

     

     第三步:

       

     

      

     

     第四步:

     

      把预先自动生成的按钮跟文字删除,拖动左边的控件到窗体上,就可以类似QT那样子编辑界面了,双击控件还可以自动生成控件的触发函数,这个跟C#的窗体控件编程一样,这样就可以根据自己需要编辑界面了,编辑效果如下:

      

     

    第五步:

      点击编译看看运行结果,如图:

      

     

      

     

    转载于:https://www.cnblogs.com/xingboy/p/11059721.html

    展开全文
  • (2)如果窗体是MDIChild话,是不可以ShowModal,可以Show。因为ShowModal与Show是不同。 ShowModal时,要求Visiable=False,假使你设置为Visiable=True就会产生错误,而子窗体设置为MDIChild时Visiable自动...

    建立子窗体时出现错误“cannot make a visible window modal”

    (1)首先在project的options中,将子窗口改为不自动创建,即“Available forms”。
    (2)如果窗体是MDIChild的话,是不可以ShowModal的,可以Show。因为ShowModal与Show是不同的。
             ShowModal时,要求Visiable=False,假使你设置为Visiable=True就会产生错误,而子窗体设置为MDIChild时Visiable自动设置为True;
              Show时,要求Visiable=True或False都不会错。

    ShowModal函数定义:
             function TCustomForm.ShowModal: Integer;
             var
            WindowList: Pointer;
            SaveFocusCount: Integer;
            SaveCursor: TCursor;
            SaveCount: Integer;
            ActiveWindow: HWnd;
            begin
            CancelDrag;
            if Visible //Form.visible=True.
    or not Enabled or (fsModal in FFormState) or
        (FormStyle = fsMDIChild) then
        raise EInvalidOperation.Create(SCannotShowModal); //产生一个raise,出错误。
            其中SCannotShowModal = 'Cannot make a visible window modal';
                ...
             end   
    Show函数定义:
             procedure TCustomForm.Show;
             begin
            Visible := True;
            BringToFront;
             end;

     

     

    c++ builder 6 同样有类似的问题 

    找开以下方法

    Delphi的fsMDIChild类型的窗体是不能使用ShowModal的,否则会弹出"Cannot make a visible window modal"异常,但是把fsMDIChild改为fsNormal类型之后使用ShowModal,依旧会弹出"Cannot make a visible window modal",经研究确定这是Delphi7的一个Bug,Delphi7之后的版本暂未使用,不知这个Bug是否还存在,处理的办法是先确定窗体模式已改回为fsNormal模式,然后用记事本打开窗体的dfm文件,找到Visible=True,把这一句删除了,再保存,然后重新编译运行,就不会再有"Cannot make a visible window modal"异常,弹出来了,在D7+XP环境下测试通过.
    展开全文
  • ---------------------- android培训、java培训、期待与您交流! ----------------------   一,建立窗体  体中可以存放各种组件,所以窗体是...Window是我们常用的窗体,Panel是用来布局的可见的。  Window也

     

    ---------------------- android培训java培训、期待与您交流! ----------------------

     

    ,建立窗体

     体中可以存放各种组件,所以窗体是容器Container。创建时我们使用的是它的子类 
    Container的常用子类有两个,WindowPanelWindow是我们常用的窗体,Panel是用来布局的不可见的。 
    Window也有两个常用子类,FrameDialogFrame是我们常用的带有标题和边框的顶层窗口,Dialog是对话框。 
    所有AWT包中的类都会运行在AWT线程上
    .事件处理

    1.什么是事件
    用户的一个操作就是一个事件发生事件的组件叫做事件源
    2.处理事件
    如果想在事件发生的时候执行一段代码就要对事件进行处理
    3.监听器
    添加到事件源上的一个对象当事件发生了虚拟机会自动调用监听器中的方法
    定义类实现XxxListener, 重写抽象方法创建对象添加到事件源事件源发生事件就执行指定方法.
    4.适配器
    定义类实现XxxListener需要将其中所有方法全部重写有时我们并不需要所有方法这样做比较麻烦.
    可以定义类继承WindowAdapter, WindowAdapter中将所有方法已经重写了只要再重写需要的方法即可
    常用事件分类:

    用事件分类 
    Ÿ 窗体事件,WindowEvent,窗体打开、关闭、正在关闭、激活、最小化等。 
    Ÿ 鼠标事件,MouseEvent,鼠标按下、抬起、进入、移出等。 
    Ÿ 键盘事件,KeyEvent,键盘按下、抬起等。 
    Ÿ 动作事件,ActionEvent,在某一组件上发生了定义好的动作,例如按钮上鼠标点击或按空格,菜单上鼠标点击或按回车等
    做一个Notepad记事本:

    package cn.itcast.day23.exercise;

    import java.awt.FileDialog;

    import java.awt.Frame;

    import java.awt.Menu;

    import java.awt.MenuBar;

    import java.awt.MenuItem;

    import java.awt.TextArea;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.awt.event.KeyAdapter;

    import java.awt.event.KeyEvent;

    import java.awt.event.WindowAdapter;

    import java.awt.event.WindowEvent;

    import java.io.ByteArrayOutputStream;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    @SuppressWarnings("serial")

    public class Notepad extends Frame {

    private MenuItem openMenuItem;

    private TextArea textArea;

    private MenuItem saveMenuItem;

    private MenuItem exitMenuItem;

    public Notepad() {

    generateUI(); // 生成界面

    handleEvent(); // 处理事件

    }

    public Notepad(String path) {

    this();

    loadFile(new File(path));

    }

    private void save() {

    // 打开对话框

    FileDialog dialog = new FileDialog(this, "保存", FileDialog.SAVE);

    dialog.setVisible(true);

    // 获取对话框中选中的文件

    String dir = dialog.getDirectory();

    String name = dialog.getFile();

    if (dir != null && name != null) 

    saveFile(new File(dir, name));

    }

    private void saveFile(File file) {

    try {

    // 获取TextArea中文本写出到file

    String content = textArea.getText();

    FileOutputStream fos = new FileOutputStream(file);

    fos.write(content.getBytes());

    fos.close();

    setTitle(file.getName() + " - 记事本");

    } catch (IOException e) {

    e.printStackTrace();

    throw new RuntimeException(e);

    }

    }

    private void open() {

    // 显示一个对话框

    FileDialog dialog = new FileDialog(this, "打开", FileDialog.LOAD);

    dialog.setVisible(true);

    // 获取选中的文件

    String dir = dialog.getDirectory();

    String name = dialog.getFile();

    if (dir != null && name != null) 

    loadFile(new File(dir, name));

    }

    private void loadFile(File file) {

    try {

    // 读取file中内容

    FileInputStream fis = new FileInputStream(file);

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    byte[] buffer = new byte[1024];

    int len;

    while ((len = fis.read(buffer)) != -1)

    baos.write(buffer, 0, len);

    fis.close();

    baos.close();

    // 将文件内容显示到文本域改变标题

    String content = new String(baos.toByteArray());

    textArea.setText(content);

    setTitle(file.getName() + " - 记事本");

    } catch (IOException e) {

    e.printStackTrace();

    throw new RuntimeException(e); // 如果出了IOException, 抛出一个RuntimeException

    }

    }

    private void handleEvent() {

    addWindowListener(new WindowAdapter() { // 给窗体添加窗体监听器

    public void windowClosing(WindowEvent e) {

    System.exit(0);

    }

    });

    openMenuItem.addActionListener(new ActionListener() { // 给打开菜单项添加动作监听器

    public void actionPerformed(ActionEvent e) {

    open();

    }

    });

    saveMenuItem.addActionListener(new ActionListener() { // 给保存菜单项添加动作监听器

    public void actionPerformed(ActionEvent e) {

    save();

    }

    });

    exitMenuItem.addActionListener(new ActionListener() { // 给退出菜单项添加动作监听器

    public void actionPerformed(ActionEvent e) {

    System.exit(0);

    }

    });

    textArea.addKeyListener(new KeyAdapter() {

    public void keyPressed(KeyEvent e) {

    if (e.getKeyCode() == KeyEvent.VK_O && e.isControlDown())

    open();

    if (e.getKeyCode() == KeyEvent.VK_S && e.isControlDown())

    save();

    }

    });

    }

    private void generateUI() {

    // 创建窗体设置大小设置位置

    setTitle("无标题 记事本");

    setSize(600, 400);

    setLocation(500, 100);

    // 创建菜单栏

    MenuBar menuBar = new MenuBar();

    // 创建菜单

    Menu fileMenu = new Menu("文件");

    Menu editMenu = new Menu("编辑");

    // 创建菜单项

    openMenuItem = new MenuItem("打开");

    saveMenuItem = new MenuItem("保存");

    exitMenuItem = new MenuItem("退出");

    MenuItem cutMenuItem = new MenuItem("剪切");

    MenuItem copyMenuItem = new MenuItem("复制");

    MenuItem pasteMenuItem = new MenuItem("粘贴");

    MenuItem deleteMenuItem = new MenuItem("删除");

    // 把菜单项装入菜单

    fileMenu.add(openMenuItem);

    fileMenu.add(saveMenuItem);

    fileMenu.addSeparator();

    fileMenu.add(exitMenuItem);

    editMenu.add(cutMenuItem);

    editMenu.add(copyMenuItem);

    editMenu.add(pasteMenuItem);

    editMenu.add(deleteMenuItem);

    // 把菜单装入菜单栏

    menuBar.add(fileMenu);

    menuBar.add(editMenu);

    // 把菜单栏装入窗体

    setMenuBar(menuBar);

    // 创建文本域添加到窗体

    textArea = new TextArea();

    add(textArea);

    // 显示窗体

    setVisible(true);

    }

    }

      网络编程概念 
      IP地址 

     每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址。   
     ipconfig:查看本机IP 
     ping:测试连接 
     本地回路地址:127.0.0.1 
     IPv44个字节组成,40-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。   
     IPv68组,每组416进制数。 
    1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f 
    1a2b::aaaa:0000:0000:0000:aabb:1f2f 
    1a2b:0000:aaaa::aabb:1f2f 
    1a2b:0000:aaaa::0000:aabb:1f2f 
    1a2b:0000:aaaa:0000::aabb:1f2f 
    端口号 

    Ÿ 每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要
    明确发到哪个程序。 
    Ÿ 端口号范围从0-65535 
    Ÿ 编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被
    系统程序占用了。 

     网络协议 
    为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 

    Ÿ UDP 
    面向无连接,数据不安全,速度快。不区分客户端与服务端。 
    Ÿ TCP 
    面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。

    一个发送端与接收端合并的类:

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.net.DatagramPacket;

    import java.net.DatagramSocket;

    import java.net.InetAddress;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    public class Chat {

    public static void main(String[] args) throws Exception {

    SenderThread senderThread = new SenderThread();

    ReceiverThread receiverThread = new ReceiverThread();

    receiverThread.setDaemon(true);

    senderThread.start();

    receiverThread.start();

    }

    }

    class SenderThread extends Thread {

    public void run() {

    try {

    DatagramSocket socket = new DatagramSocket();

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    while (true) {

    String line = br.readLine();

    if ("quit".equals(line))

    break;

    byte[] data = line.getBytes();

    DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getByName("255.255.255.255"), 6789);

    socket.send(packet);

    }

    socket.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    class ReceiverThread extends Thread {

    public void run() {

    try {

    DatagramSocket socket = new DatagramSocket(6789);

    DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);

    while (true) {

    socket.receive(packet);

    byte[] data = packet.getData(); // DatagramPacket中的字节数组

    int len = packet.getLength(); // 发送端发送的数据长度

    String content = new String(data, 0, len); // 将接收到的数据解码成字符串

    String ip = packet.getAddress().getHostAddress(); // 获取地址

    int port = packet.getPort(); // 获取端口号

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    System.out.println(sdf.format(new Date()) + " " + ip + ":" + port + " " + content); // 打印数据

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    展开全文
  • MDI窗体

    热门讨论 2019-11-21 21:06:00
    MDI是多文档界面,由一...因此,在MDI中调用的窗体都是它的子窗体,如果子窗体的MDICHILD属性为真,则子窗体能超出MDI的范围。MDI还能对其包含的子窗体进行排序操作。建立一个MDI后,将普通的窗体的MDICHILD属性设...
  • vb.net中的窗体继承

    千次阅读 热门讨论 2015-11-17 15:48:41
    组合查询时,三个窗体基本上是一样的,所以用到设计...建立的窗体如下图所示:   问题随之而来,控件能用,那相对控件的按钮的事件也没有办法实现。从网上查了好多资料,总结:早期版本的VS继承的窗体控件是可以
  • VB.NET对于窗体的操作有很多种,编程人员在实际开发中可以根据自己不同需求来进行自己需要一种操作。今天我们为大家带来则是有关VB.NET窗体嵌套一些操作方法,希望能够帮助大家解决一些问题。 .NET框架...
  • Delphi对话框窗体

    2012-01-01 23:56:00
    “真正的对话框”意思是指用传统方法建立起来的对话框,它有资源编译器和资源脚本文件建立,在其他一些编程环境中其对话框就是用这种方式建立的,Delphi没有用传统的对话框)。 对话框有以下几种特征,这正是与正常...
  • vc制作规则窗体

    千次阅读 2007-07-11 21:23:00
    由于需要 最近做起了vc界面开发,首先做的是规则窗体,规则窗体可以实现你所想要的任何形状的窗体,下面我们就在制作规则窗体。 首先建立一个MFC工程Test 2.准备两张位图,一张显示位图,另一个张是掩摸...
  • 刚开始接触机房时候完全是懵状态,不知如何下手。虽然经过了学生信息系统但是仍然感觉机房太难了。登录窗体时机房收费系统第一个...搞清窗体的逻辑,要想搞清逻辑,必可少就是流程图,可以更好显示出每...
  • 窗体是向项目中创建多个窗体,每个窗体实现一样功能。 (1)多窗体使用 多窗体的建立是重复创建窗体步骤。 设置启动窗体:在program.cs程序文件中,将主函数里面run方法形参改为自己想要最开始启动窗体...
  • 设计窗体时都要设计窗体的属性,它大小、命名、背景等都是可以直接定义。这里需要经常使用是VS工具箱,工具箱可以在 视图里面找到,也可以使用快捷键Ctrl+W,X打开,因为使用频率很高建议固定。 好了,废话...
  • Java内部窗体的实现

    千次阅读 2015-02-27 13:00:43
    一般我们会将JInternalFrame加入DesktopPane方便管理,DesktopPane是一种特殊Layered pane,用来建立虚拟桌面,它可以显示并管理众多JInternalFrame之间层次关系 代码块1实现方法1public class JInternalFrame
  • Winform窗体传值

    2012-02-22 20:46:17
    常用方法: ...2. 比较稳妥方法,就是在传值过程中,首先在被传值窗体form2中,建立一个公有属性B,做为接收者。在form1里实例form2时,把需要传递值A赋给新实例form2.B,或者是通过Form2类构造函
  • C# Winform 窗体美化(六、双层窗体

    千次阅读 2017-04-15 11:43:18
    双层窗体的逻辑是建立在 UpdateLayeredWindow 能绘制控件基础上,上层再添加一个专门放置控件层;这样就可以在上层“控件层”放控件,下层“皮肤层”绘制异形窗口。有两点需要主意: 1. 两个窗体的大小和...
  • VB代码存储在模块中。在VB中提供了三种类型模块:窗体模块、标准模块和类模块。  简单应用程序可以只有一个窗体,所用程序都驻留在窗体模块中,...此外还可以建立包含共享代码与数据类模块。  每个标
  • VB代码存储在模块中。在VB中提供了三种类型模块:窗体模块、标准模块和类模块。 简单应用程序可以只有一个窗体,所用程序都驻留在...此外还可以建立包含共享代码与数据类模块。 每个标准模块、类模块...
  • 不过发现无法实现套打功能,把所有信息都打出来了 对代码进行了一定调整,并且可以预览,去除了预览页面打印功能下面是我写程序1. 新建立一个WINFORM项目2. 添加一个panel...
  • 初学c#时,误以为属性和变量没什么区别,后来才渐渐体会到属性在windows窗体程序中的重要性,可以说它是窗体的接口,窗体之间的联系就是通过窗体建立的。下面我就一例子来说明窗体间是如何进行通信的(传递数据)。...
  • 利用事件“时刻关注” 事件主要特点是一对多关联,即一个事件源可以有多个响应者。...从窗口:事件建立于委托基础之上,既然可以用委托实现消息广播,那么一定能用事件机制实现“消息广播...
  • 如果你要进行测试,你要建立一个WebService客户端来调用(也就是新建一个项目来调用这个WebService,随便建立一个项目就可以,例如控制台应用程序),这样调试WebService客户端,再调用WebService方法地方按F11...
  • //b1这个实例(按钮等)添加事件监听接口,this表示当前类对象,在一个类里,你需要new他实例就直接可以用this调用它方法和属性 area = new JTextArea(); pane = new JScrollPane(area); Label lb2 = ...
  • 系统实现了窗口弹出、回落、渐隐和渐现等效果,并且支持规则窗体的建立(需要系统支持),窗体行为具体参数(如弹出速度、停留时间等)均可以设置。随此模板还附带了一个“PopUpWindow辅助工具”,通过它您...
  • 学习.net短时间了,最近做一个东西需要用到在几个窗体之间进行通信。类似于一般软件设置这个选项卡,打开时候进行一些基本参数设置,然后主程序会根据这些参数作出反映。 之前我采取方法是在主窗体类中...
  • 网上查找资料,是把目前程序句柄设置为桌面句柄建立父子关系就可以 但我不论怎么尝试都不行,知道哪里有问题? 方式1:失败 parent = win32gui.FindWindow("Progman", None): child = win32gui.FindWindow...
  • AE中实现鹰眼方法简单,网上相关代码很多,在此我就多说了。...不同窗体实现鹰眼主要是传参问题:我们可以建立一个类,把两个windows窗体设置为shared,在传参实可以通调用此类中方法实现。
  • 通过窗体向EXCEL表单添加数据

    万次阅读 2007-10-21 17:34:00
    我们经常用Excel制作各种表格,如公司管理人员制作公司成员名单表... 而通过VBA在Excel中建立窗体,通过窗体向Excel输入数据,可以避免以上问题。本例是一个简单登记程序,其功能是通过窗体来向工作表中添加数据。

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 218
精华内容 87
关键字:

不可以建立的窗体是