Frm Form1 = new Frm();
//here I always get the count =0
if (Form1 .listBox2 .SelectedItems .Count > 0)
{
string item;
foreach (int i in Form1.listBox2.SelectedIndices)
{
item = Form1.listBox2.Items[i].ToString();
Frmで同じことをすると、選択されたアイテムの実際の数が得られます。Frmのコードは次のとおりです
public void btnPostText_Click(object sender, EventArgs e)
{
listBox2.ClearSelected();
if (listBox1.SelectedItems.Count > 0)
{
foreach (int index in listBox1.SelectedIndices)
listBox2.SetSelected(index, true);
}
私のプログラムから、ログインプロセスの後、ユーザーがlistBox2のlitBox1に投稿したいグループ名を選択した後、Facebookで同時に複数のグループに投稿しようとしています。そこにグループIDがあります同じ順序なので、ユーザーが btnPostText をクリックすると、選択範囲が listBox1 から listBox2 に移動します。PostImg public static bool PostImg( , , ,)
Class2 には Postimg と同様の post プロシージャが含まれており、投稿された場合は true、そうでない場合は false を返します。
ここでは Frm で呼び出しています
if (Class2.PostImage(AppSettings.Default.AccessToken, textbox1.Text, textboxpic.Text) == true)
MessageBox.Show("Post Done");
Class2 のコードは
public static bool PostImage(string AccessToken, string Status, string ImagePath)
{
try
{
Frm Frm = new Frm();
if (Frm .listBox2 .SelectedItems .Count > 0)
{
string item;
foreach (int i in Frm.listBox2.SelectedIndices)
{
item = Frm.listBox2.Items[i].ToString();
groupid = item;
FacebookClient fbpost = new FacebookClient(AccessToken);
var imgstream = File.OpenRead(ImagePath);
dynamic res = fbpost.Post("/" + groupid + "/photos", new
{
message = Status,
File = new FacebookMediaStream
{
ContentType = "image/jpg",
FileName = Path.GetFileName(ImagePath)
}.SetValue(imgstream)
});
result = true;
}
}
return result;
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return false;
}