我习惯于在窗体之间传递变量,只需将它们作为参数传递即可.现在我有一个已经打开的表单(让我们称之为FormMain
),另一个表单应该像对话框一样(FormTask
).在填写信息之前,用户无法与主表单进行交互FormTask
.FormTask
只包含一个文本框,应该返回此文本框的值,并将其FormMain
作为变量跟踪.FormTask
需要一个参数exerciseType
.当FormTask
打开检查此参数的值,并相应地设置文本框的默认值.这已经有效了,我对如何将我的字符串值返回到已经打开状态感到有点无能为力MainForm
.这些对话框似乎只能返回DialogResults
,这不是我所追求的.我也没有太多的经验,我宁愿避免摸索自己制作自己的自定义对话框.
FormMain:
FormTask formTask = new FormTask(exerciseType);
formOpgaveInvoker.ShowDialog();
Run Code Online (Sandbox Code Playgroud)
FormTask:
private void button1_Click(object sender, EventArgs e)
{
string opgave = textBoxOpgave.Text;
// return string value to MainForm here
}
Run Code Online (Sandbox Code Playgroud) 我试图在Excel中创建一个按钮,将一定范围的单元格从活动工作簿复制到另一个工作簿.当我指定一个固定的范围时,复制这个范围非常有效,但我很难理解如何计算出单击按钮的行.
每行包含7个左右的单元格,第8个单元格包含一个附加宏的形状(按钮).当用户按下该按钮时,需要复制与包含按下的按钮的行在同一行上的7个单元格.
使用ActiveCell是没有用的,因为按下按钮实际上并不将该单元格设置为活动状态.我搜索了很多,但我似乎无法找到如何获得这个价值.一旦我获得了点击按钮的行号,我就可以自己计算出其余部分.
我正在阅读一本关于Android开发的书,让我开始编写我的第一个真正的应用程序.我已经达到了为我的一项活动制作选项菜单的程度.菜单显示,但菜单项的相应图标拒绝显示.这是菜单的代码:
ReminderListActivity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.list_menu, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
RES /菜单/ list_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_insert"
android:icon="@drawable/menu_add"
android:title="@string/menu_insert" />
</menu>
Run Code Online (Sandbox Code Playgroud)
我已将ic_menu_add.png图标(32x32px)从我的一个Android SDK子文件夹复制到我的res/drawable-mdpi文件夹,并将该文件重命名为menu_add.png.我在eclipse中刷新了文件夹,因此图标显示出来,正如您所看到的,我将其设置为布局文件中菜单项的图标.我尝试在模拟器中运行我的项目几次,但图标永远不会出现.为了记录,我使用Android 4.0.3 ..
有任何想法吗?
我正在尝试使用HTML5画布,JavaScript和XML制作一种游戏.我们的想法是,您可以通过将问题和答案放在XML文件中来进行测验.我写了一个主循环,循环遍历所有问题,构建它们并检查答案的正确性.现在我只是使用警报和对话框来回答问题问题是我的主循环是一个大的互连整体,从头到尾遍历整个游戏,而不是让警报框提出问题和对话框回答,紧接着,我想要一些用户互动.问题的答案显示在屏幕底部的框中,用户可以控制起重机选择正确的答案.这是我坚持的主循环代码片段:
answer = loadQuestion(i);
if (answer == "correct") {
// answered correctly, update scoreArray and load next question
scoreArray[currentQuestion] = "correct";
// show 'next'-button and wait for press to continue
} else {
// answered incorrectly again, update scoreArray and load next question
scoreArray[currentQuestion] = "error";
// show 'next'-button and wait for press to continue
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在调用loadQuestion,它会立即加载问题,显示可能的答案,现在立即抛出一个对话框,您可以在其中键入答案.此答案将被返回并验证.
我已经编程了起重机的控制装置,用户已经可以拿起一个装有它的盒子.但是因为我正在调用loadQuestion并期望它返回一个值,所以这不起作用.如果玩家使用起重机给出答案,我该如何让我的主循环"暂停",然后继续?我已经尝试将答案作为一个全局变量,并且只是在答案==""之前有空,以便在答案获得值之前保持函数忙无所事事,但这只是冻结了脚本.我还试图监视应答变量的状态,并且在发生这种情况时清除间隔并返回值,但是这只是返回false,因为函数完成而没有立即返回值.
我正在使用PHPExcel使用PHP将一组图像写入Excel文件.插入图像似乎不是问题,但是我在设置适当的行高以匹配图像高度时遇到一些困难.
我设法使用pixelsToCellDimension来计算正确的列宽,但这似乎不适合计算行高.在查看PHPExcel_Shared_Drawing类中的其余函数并使用Google搜索之后,我对如何执行此操作一无所知.
我的代码到目前为止:
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("creator")
->setLastModifiedBy("modifiedby")
->setTitle("Title")
->setSubject("Subject")
->setDescription("Description")
->setKeywords("keyword1 keyword2")
->setCategory("category");
// Get default font
$defaultFont = $objPHPExcel->getDefaultStyle()->getFont();
Run Code Online (Sandbox Code Playgroud)
[生成我的图像并将其路径添加到数组的一些代码]
foreach( $filePaths as $i => $filePath ) {
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setWorkSheet( $objPHPExcel->getActiveSheet() );
$objDrawing->setName("name");
$objDrawing->setDescription("Description");
$objDrawing->setPath( $filePath );
$size = getimagesize($filePath);
$columnWidth = PHPExcel_Shared_Drawing::pixelsToCellDimension($size[0], $defaultFont);
$rowHeight = PHPExcel_Shared_Drawing::pixelsToCellDimension($size[1], $defaultFont);
$objDrawing->setCoordinates('A' . ($i+1) );
$objDrawing->setOffsetX(0);
$objDrawing->setOffsetY(0);
// set row/column (cell) sizes to match image size
$objPHPExcel->getActiveSheet()
->getColumnDimension('A') …
Run Code Online (Sandbox Code Playgroud) 嘿.我必须使用Google Chrome Frame来支持某些HTML5功能,例如Canvas for Internet Explorer 8.我已经实现了代码,但它似乎根本不起作用.检查用户是否已安装GCF的脚本部分,它显示覆盖框架,其中包含指向安装程序的链接.我已经安装了GCF,甚至重新启动了IE8,但它似乎根本没有运行.当我转到工具 - >管理附加组件时,它表示它已安装并正在运行,因此不会出现问题.我一直在搜索,发现你可以通过右键单击页面来检查它是否处于活动状态,它应该显示一个上下文菜单.这对我来说不会发生,我的页面只会在我第一次使用canvas元素时抛出一个错误.我已经使用了应该在我的页面上激活GCF的元标记,但它似乎根本没有做任何事情.
我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
Run Code Online (Sandbox Code Playgroud)
最后一行代码应该激活GCF渲染.然后在我的页面结尾处:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这应该运行一个脚本,检查是否安装了GCF(这是有效的).我将一个onload事件附加到我的窗口,执行一个包含以下内容的函数:
<body onload="init();" onunload="doLMSFinish();">
function init() {
CFInstall.check({
mode: "overlay", destination: "http://www.waikiki.com"
});
}
Run Code Online (Sandbox Code Playgroud)
此代码还用于检查是否安装了GCF(这也有效).
有任何想法吗?我已经安装了GCF,使用了应该激活GCF渲染的正确元标记,并将此元标记放在我页面顶部作为标题块中的第一项.它出什么问题了?
编辑:我在本地网页上测试这个.这是它不起作用的原因吗?我正在研究的项目是在本地运行,而不是在服务器端运行.我已经有干脆抛弃浏览器的支持,因为它根本就不是让我加载本地XML文件(这是该项目的核心功能).
编辑#2:我已经将我的东西上传到FTP以检查它是否可以在线工作,但它仍然没有.我甚至做了一个小测试页面,它只包含基本的html骨架,初始化chrome框架渲染的元标记,以及一个加载图像的画布.它只是在加载canvas元素时出错.
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<script type="text/javascript">
canvasSavannah = document.getElementById("savannahStatic");
contextSavannah = canvasSavannah.getContext("2d");
savannah = new Image();
savannah.src = "savannah_static.png";
savannah.onload = function() {
contextSavannah.drawImage(savannah, 0, 0);
};
</script>
</head>
<body> …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用VBA在Excel中定义命名范围.基本上,我有一个可变列号.然后运行循环以确定该特定列中的第一个空单元格.现在我想要定义一个命名范围,从该特定列的第2行到该列中包含数据的最后一个单元格(第一个空单元格 - 1).
例如,指定了第5列,其中包含3个值.如果我是正确的,我的范围将是(2,5)(4,5).我只是想知道如何仅使用整数而不是(E2:E4)来指定此范围.它可能吗?
我发现这段代码定义了一个命名范围:
'Change the range of cells (A1:B15) to be the range of cells you want to define
Set Rng1 = Sheets("Sheet1").Range("A1:B15")
ActiveWorkbook.Names.Add Name:="MyRange", RefersTo:=Rng1
Run Code Online (Sandbox Code Playgroud)
任何人都可以用正确的方向推动我使用整数来指定这个范围吗?
我正在使用多维数组来跟踪答案:
public string[,] answersArray = new string[50, 10];
Run Code Online (Sandbox Code Playgroud)
数组的第一个维度跟踪问题(最多50个问题),而第二个维度跟踪每个问题的答案(最多10个).每个问题的答案数量都是可变的.在加载问题时,我想确定该特定问题的答案数量.然后我可以在for循环中使用该数量来加载并显示这些答案.有没有一种简单的方法可以获得这个,或者我必须自己写一些东西?我知道我可以声明另一个数组来跟踪每个问题的答案数量,并使用它来完成它,但我只是想知道是否有更简单的解决方案.
我编写了一个函数,它根据我的应用程序中保存的数据构建XML字符串.接下来,应将此字符串写入实际的XML文件,以便可以使用它.然后,此文件将在HTML Web应用程序中用于提供数据.我正在使用以下代码片段来做到这一点:
xmlDoc.Save("exercise.xml");
Run Code Online (Sandbox Code Playgroud)
很容易,但有一个小的捕获.我的XML文件在Firefox中无法正常工作,因为它将空格视为childNode.重写我的整个Web应用程序几乎是不行的,因为它的工作量太大了.我宁愿能够以非格式化的方式将我的XML字符串保存到XML文件,因为我已经测试并确认它几乎适用于所有可想到的浏览器.字符串本身不包含任何回车符或制表符,因此Save() - 方法可能会自动添加它.有什么方法可以阻止它这样做,或者另一种简单的方法来绕过这个?
我对谷歌地图标记的反弹动画有一些问题.基本上,我在地图右侧的列中有一个主题列表.在每个主题下面列出了与其连接的标记的名称,以及用于可视地显示/隐藏标记的复选框.我想让相应的标记在将鼠标悬停在其链接的复选框上时连续弹跳,并在用户停止悬停在复选框上时立即停止弹跳.我现在有以下代码:
HTML:
<input type=\"checkbox\" onmouseenter=\"highlightPoint( " + (amountOfPoints - 1) + " )\" onmouseleave=\"removePointHighlighting( " + (amountOfPoints - 1) + " )\" /> "
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
function highlightPoint( pointIndex ) {
window["point" + (pointIndex+1)].setAnimation(google.maps.Animation.BOUNCE);
}
function removePointHighlighting( pointIndex ) {
console.log( "remove animation" );
window["point" + (pointIndex+1)].setAnimation( null );
}
Run Code Online (Sandbox Code Playgroud)
除了轻微的打嗝外,此代码几乎按预期工作.有时动画在悬停时连续播放,但有时在离开悬停状态后再次悬停时,弹跳动画只播放一次,然后停止.何时或为何发生这种情况似乎相当随机.动画播放一次后,在页面刷新之前不会再继续播放.我猜这与动画背后的一些计时器有关?我发现以下代码仅用于播放一次反弹动画:
setTimeout(function(){ marker.setAnimation(null); }, 750);
Run Code Online (Sandbox Code Playgroud)
是否有一种方法可以在mouseleave上"重置"这些计时器,或者是否有其他因素导致动画出错?对于我正在制作的应用程序来说,它是一个相对不重要的功能,但我仍然想知道这里的问题是什么.
编辑:这似乎是特定于浏览器的问题.在Safari和Firefox中进行测试时,弹跳没有任何问题.奇怪的指定问题只发生在Chrome中.通常,只要动画设置为null,然后再设置,它就会播放一次.只有在第一次鼠标悬停时才会持续弹跳.奇怪..
我对VBA完全不熟悉,尽管我对常规VB非常熟悉.我不知道是否必须通过VBA完成,或者是否可以使用内置的Excel功能来完成.基本上,我在隐藏工作表的列中有一堆数据.另一张纸上应该有两个下拉列表,其中一个取决于另一个选定的值.关系中有三个实体(参见下面的示例)我不知道如何使其工作,甚至这些行之间的关系如何工作.
这是我想要实现的一个例子:一张纸上有两列:"员工"和"项目".员工包含一组员工下拉列表.此数据位于隐藏的工作表中.每个员工都链接到一个部门,每个部门都链接到许多项目.一旦用户选择了某个特定员工,我希望活动行的"项目"列填充一个下拉列表,其中包含链接到所选员工所属部门的所有项目.我将如何在Excel中设置这些关系,并编写使此功能发生的VBA函数?
我无法向您提供隐藏工作表上的数据列的示例,因为我不知道如何安排它们开始.