这是form1中的代码,包括Load事件:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Text.RegularExpressions;
using System.Collections;
namespace RssNews
{
public partial class Form1 : Form
{
string readableRss;
private List<string> lines = new List<string>();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
readableRss = RssReader.covertRss("http://rotter.net/rss/rotternews.xml");
const int maxLines = 5;
lines = Regex.Split(readableRss, "\r\n")
.Where(str => !string.IsNullOrEmpty(str))
.ToList();
newsFeed1.GetLines = lines;
this.newsFeed1.NewsTextFeed = new string[maxLines];
SetupText(lines
.Skip(Math.Max(0, lines.Count() - maxLines))
.Take(maxLines)
.ToArray());
/*const int maxLines = 5;
string[] lines = Regex.Split(readableRss, "\r\n");
this.newsFeed1.NewsTextFeed = new string[maxLines];
SetupText(lines.Skip(Math.Max(0, readableRss.Length - maxLines)).Take(maxLines).ToArray());*/
this.newsFeed1.TextColor = new Color[5];
SetupColors(new Color[] { Color.Blue });
//set this Variable to the Height of the Control to display one label at a time
this.newsFeed1.Spacing = this.newsFeed1.Height;
this.newsFeed1.SetTexts();
this.newsFeed1.startFeed();
}
当我使用断点时:
newsFeed1.GetLines = lines;
我看到GetLines不为null并从行中获取内容。
问题在于NewsFeed.cs UserControl:
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Speech.Synthesis;
namespace RssNews
{
public partial class NewsFeed : UserControl
{
SpeechSynthesizer speaker;
public List<string> GetLines = new List<string>();
这里GetLines为空! 我希望GetLines将包含form1中变量行中的内容。 在Form1行中包含100个索引。当我在Form1中将GetLines分配给行时,我看到GetLines还包含100个索引。
但是当我在线上的NewsFeed代码上使用断点时:
public List<string> GetLines = new List<string>();
GetLines包含0个空的索引。
我想将form1中变量行的内容传递给Newsfeed.cs中的变量GetLines
答案 0 :(得分:1)
如果将usercontrol加载到该表单中,您可以使用此问题How do I execute code AFTER a form has loaded?中的解决方案。使用表单的Shown
事件。