首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
solr
hook
httpclient
get
version
require
function
数组
tags
express
window
php5
datetime
input
java
bit
integer
actionscrip
cSharp
plugins
main
perl
rsa
typescript
search
web
c语言
web3
python3
substring
format
vbscript
keyword
dagger
bytecode
post
foreach
heatmap
list
subset
dll
php
chat
match
header
string
text
cookie
split
php7
range
triggers
cpython
tree
eval
ip
request
regex
stream
erlang
metadata
testing
uml
int
copy
js
bash
python2
merge
process
uri
future
command
netty
fetch
hashtable
case
jsp
frameworks
当前位置:
开发笔记
>
编程语言
> 正文
在gnome下用C#开发一个简单的窗口
作者:LA_Lam霸 | 来源:互联网 | 2023-08-31 19:06
终于发现ATI的显卡驱动可以用了,于是可以不再忍受800*600的分辨率了做为一个.net爱好者怎么可以不尝试一下mono呢?于是apt安装mono,顺便赞一把debian安装好debian以后,我
终于发现ATI的显卡驱动可以用了,于是可以不再忍受800*600的分辨率了
做为一个.net爱好者怎么可以不尝试一下mono呢?
于是apt安装mono,顺便赞一把debian
安装好debian以后,我写了一个简单的对话框试了试
一,用monoDevelop新建工程,我的名字是gtkTest,gtk# 2.0 Project。
二,编译运行已经出现了一个gnome的窗体。不过上面什么都没有
三, Main.cs是定义程序入口的,暂时我还没有用到他。
四,打开MyWindow.cs,首先在MyWindow的构造函数中添加一个Button。
Button mybtn = new Button("Click me");
把按钮加入窗体
this.Add(mybtn);
五,编译运行,可以看到在窗口中已经有了一个按钮,并且是充满怎个窗口的。这里和
windows是不一样的,一个窗口好象只能增加一个控件,比如说要在add一个Label
在编译时刻可以通过,但是运行时刻会有Warning。而且控件大小不可调。
六,添加单击事件处理函数
构造函数中增加单击事件
mybtn.Clicked+=new EventHandler (mybtn_click);
添加事件处理的函数
void mybtn_click(object sender,EventArgs args)
不要在里面直接用MessageBox.Show()这个函数是没有的。
看了一下Doc,发现有一个MessageDialog,估计应该是它了。
查看构造函数,MessageDialog(Window, DialogFlags, MessageType,
ButtonsType, string, params object[])
第一个是父窗口,第二个的意思是他的存在规则吧,我是这样理解的。
最后一个参数不知道什么意思,看他的例子也没有最后一个,我也没有写
根据example在事件处理的函数里面加上
MessageDialog md = new MessageDialog((Window)this,
DialogFlags.DestroyWithParent,
MessageType.Question,
ButtonsType.YesNo,
"Do you really want to exit?");
ResponseType result = (ResponseType)md.Run();
md.Destroy();
if(result==ResponseType.Yes)
this.Destroy();
七,编译运行,在单击按钮的时候就会出现对话框问你是否确定退出。搞定
最后粘一下MyWindow.cs的代码
using
System;
using
Gtk;
public
class
MyWindow : Window
{
public
MyWindow () :
base
(
"
MyWindow
"
)
{
this
.SetDefaultSize (
400
,
300
);
this
.DeleteEvent
+=
new
DeleteEventHandler (OnMyWindowDelete);
Button mybtn
=
new
Button(
"
Click me
"
);
mybtn.Clicked
+=
new
EventHandler (mybtn_click);
this
.Add(mybtn);
this
.ShowAll ();
}
void
OnMyWindowDelete (
object
sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal
=
true
;
}
void
mybtn_click(
object
sender,EventArgs args)
{
MessageDialog md
=
new
MessageDialog((Window)
this
,
DialogFlags.DestroyWithParent,
MessageType.Question,
ButtonsType.YesNo,
"
Do you really want to exit?
"
);
ResponseType result
=
(ResponseType)md.Run();
md.Destroy();
if
(result
==
ResponseType.Yes)
this
.Destroy();
}
}
c#
debian
编译
main
window
button
windows
label
object
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
main
WPF项目学习.一
WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ...
[详细]
蜡笔小新 2024-11-15 11:38:43
window
.NET Core 微服务内部通信:Thrift与HTTP客户端性能对比
本文通过基准测试(Benchmark)对.NET Core环境下Thrift和HTTP客户端的微服务通信性能进行对比分析。基准测试是一种评估系统或组件性能的方法,通过运行一系列标准化的测试来衡量其表现。 ...
[详细]
蜡笔小新 2024-11-15 12:35:23
main
将.o文件链接到.elf文件时
我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ...
[详细]
蜡笔小新 2024-11-14 10:07:21
get
SoundPool
如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ...
[详细]
蜡笔小新 2024-11-13 16:47:19
rsa
PHP 对象生命周期与内存管理
本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ...
[详细]
蜡笔小新 2024-11-12 13:35:26
window
Delphi 7下最小化到系统托盘(主要是WM_TRAYMSG和WM_SYSCOMMAND消息)
在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ...
[详细]
蜡笔小新 2024-11-12 12:32:15
substring
关于使用JavaScript在多个页面间传递参数的技术探讨
本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ...
[详细]
蜡笔小新 2024-11-09 09:28:55
main
精选Linux经典著作在数字图书馆展出
数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ...
[详细]
蜡笔小新 2024-11-08 10:55:29
java
JavaScript中的事件处理机制
事件是程序各部分之间的一种通信方式,也是异步编程的一种实现形式。本文将详细介绍EventTarget接口及其相关方法,以及如何使用监听函数处理事件。 ...
[详细]
蜡笔小新 2024-11-15 04:27:01
bit
解决Unreal Engine中UMG按钮长时间按住自动释放的问题
本文探讨了在Unreal Engine中使用UMG按钮时,长时间按住按钮会导致自动释放的问题,并提供了详细的解决方案。 ...
[详细]
蜡笔小新 2024-11-14 20:40:39
java
兆芯X86 CPU架构的演进与现状(国产CPU系列)
本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ...
[详细]
蜡笔小新 2024-11-14 15:04:34
window
C# 实现可浮动工具栏功能
本文介绍如何在 C# 中实现一个可浮动的工具栏,即工具栏可以从其初始位置拖出,并且可以重新拖回原位。通过创建一个新的窗口作为工具栏的容器,并利用 .NET Framework 提供的 ToolStrip 控件,可以轻松实现这一功能。 ...
[详细]
蜡笔小新 2024-11-12 14:19:58
input
本地存储组件实现对IE低版本浏览器的兼容性支持
本地存储组件实现对IE低版本浏览器的兼容性支持 ...
[详细]
蜡笔小新 2024-11-11 22:42:37
java
在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解
在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ...
[详细]
蜡笔小新 2024-11-11 17:28:29
get
【分享】C#中利用LastOrDefault方法在List集合中高效查找最后一个满足条件的元素
在C#编程中,`List`集合提供了多种方法来高效地查找满足特定条件的元素。虽然`FirstOrDefault`方法常用于查找集合中第一个符合条件的对象,并在未找到时返回默认值,但若需要查找最后一个符合条件的元素,则可以使用`LastOrDefault`方法。该方法同样支持未找到匹配项时返回默认值,从而提供更加灵活的查询选项。此外,`LastOrDefault`方法在处理大量数据时依然保持高效的性能,适用于各种复杂场景。 ...
[详细]
蜡笔小新 2024-11-08 14:18:05
LA_Lam霸
这个家伙很懒,什么也没留下!
Tags | 热门标签
solr
hook
httpclient
get
version
require
function
数组
tags
express
window
php5
datetime
input
java
bit
integer
actionscrip
cSharp
plugins
main
perl
rsa
typescript
search
web
c语言
web3
python3
substring
RankList | 热门文章
1
KAFKA 进阶:深入探讨 kafka 分区数过多的问题及影响
2
学习笔记之——Gif录屏软件
3
中级通信工程师 互联网技术 电子书_中级通信工程师|「综合能力」第6章重点来啦...
4
2020考研数学基础篇线性代数李永乐
5
Python中的三大流程控制语句
6
Linux使用jmeter对数据库进行压测
7
盘点正在改变世界的机器人 柔性唇很“黑科技”
8
python – 舍入一列
9
javascript – Bootstrap Carousel Slider:一次只显示4张图片 – 一次只显示一张图片?
10
使用Jenkins安装maven插件
11
POJ3414 Pots (倒水问题 BFS + 打印路径)
12
Endnote如何添加CAJ格式文件
13
轩宝:python小白的第一只爬虫“房天下”在售新房数据爬取
14
TestLink1.9.16邮箱配置(网易163)
15
简约朴素设计,使公寓独特规整,精致耐看,令人异常惊艳
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有